自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL中表變量的不足

數(shù)據(jù)庫 SQL Server
下文將為您介紹SQL中的表變量相對(duì)于SQL中的臨時(shí)表的一些缺陷,供您參考,希望對(duì)幫您更好理解SQL中表變量和臨時(shí)表的區(qū)別。

SQL中的表變量并不是***無缺的,與SQL中的臨時(shí)表相比,它存在著一些缺陷,具體如下:

在表變量上不能創(chuàng)建非聚集索引(為 PRIMARY 或 UNIQUE 約束創(chuàng)建的系統(tǒng)索引除外)。與具有非聚集索引的臨時(shí)表相比,這可能會(huì)影響查詢性能。

表變量不像臨時(shí)表那樣可以維護(hù)統(tǒng)計(jì)信息。在表變量上,不能通過自動(dòng)創(chuàng)建或使用 CREATE STATISTICS 語句來創(chuàng)建統(tǒng)計(jì)信息。因此,在大表上進(jìn)行復(fù)雜查詢時(shí),缺少統(tǒng)計(jì)信息可能會(huì)妨礙優(yōu)化器確定查詢的***計(jì)劃,從而影響該查詢的性能。

在初始 DECLARE 語句后不能更改表定義。

表變量不能在 INSERT EXEC (但經(jīng)本人測(cè)試在sql2005可以使用insert vartable exec)或 SELECT INTO 語句中使用。

表類型聲明中的檢查約束、默認(rèn)值以及計(jì)算所得的列不能調(diào)用用戶定義的函數(shù)。

如果表變量是在 EXEC 語句或 sp_executesql 存儲(chǔ)過程外創(chuàng)建的,則不能使用 EXEC 語句或 sp_executesql 存儲(chǔ)過程來運(yùn)行引用該表變量的動(dòng)態(tài) SQL Server 查詢。由于表變量只能在它們的本地作用域中引用,因此 EXEC 語句和 sp_executesql 存儲(chǔ)過程將在表變量的作用域之外。但是,您可以在 EXEC 語句或 sp_executesql 存儲(chǔ)過程內(nèi)創(chuàng)建表變量并執(zhí)行所有處理,因?yàn)檫@樣表變量本地作用域?qū)⑽挥?EXEC 語句或 sp_executesql 存儲(chǔ)過程中。
 

 

【編輯推薦】

為您詳解SQL Server中的全局變量

詳解SQL中循環(huán)結(jié)構(gòu)的使用

sql循環(huán)語句和多分支語句的語法介紹

SQL循環(huán)執(zhí)行while控制

SQL中游標(biāo)嵌套循環(huán)的示例

 

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-08 17:35:25

SQL表變量

2011-03-28 10:17:39

sql server

2010-09-06 13:34:37

Sql Server語句

2011-06-21 10:33:02

VMware

2010-09-10 09:47:14

SQL變量指示

2010-07-05 08:57:48

SQL Server虛

2010-09-10 10:39:00

SQL變量聲明

2010-11-12 10:53:41

sql server表

2010-11-12 10:23:05

SQL Server變

2010-10-27 16:05:53

oracle查詢

2010-07-12 15:16:04

SQL Server

2011-03-23 13:00:22

SQL Server虛擬內(nèi)存

2010-10-12 13:37:54

mysql索引

2010-09-10 09:38:36

SQL系統(tǒng)變量

2010-11-26 15:18:10

mysql變量賦值

2010-09-10 10:32:31

SQL變量Transact

2010-09-10 13:14:47

SQL變量

2010-11-12 10:31:25

SQL Server游

2010-03-31 15:03:54

Oracle執(zhí)行

2010-08-24 16:41:59

cellpaddingcellspacing
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)