nintenyun

导航

转载 #TEMPTABLE 、##TEMPTABLE 、@TEMPTABLE 區別?!

筆記一下下列三種方式的區別 :
 
--方法一 
CREATE TABLE #TEMP(
  NAME CHAR(20),
  ID   CHAR(10)
)
 
--方法二 
CREATE TABLE ##TEMP(
  NAME CHAR(20),
  ID   CHAR(10)
)
 
--方法三 
DECLARE @TEMP TABLE (
  NAME CHAR(20),
  ID   CHAR(10)
)
 
INSERT INTO #TEMP VALUES('TOM','A123456789')
INSERT INTO ##TEMP VALUES('ARIC','G123212343')
INSERT INTO @TEMP  VALUES ('BILL','M123465324')
 
方法一 VS. 方法二
1.兩者均在tempdb資料庫中建立起資料表(存於DISK中),可利用 DROP TABLE 刪除暫存資料表,或是建立該暫存資料表的連線結束時,SQL Server 會自動將其刪除。 
2.#TEMP資料只有建立者可以取用,其他人不可取用;##TEMP則是所有人均可取用
 
方法一二 VS 方法三
1.前者需用到DISK I/O;後者則是儲存於記憶體中
2.前者需使用DROP或是連線結束後暫存表才會消失;後者不需使用DROP指令,當批次指令執行完成後即自動被刪除
 
[參考資料]
1.http://ryangaraygay.com/blog/post/temp-tables-and-table-variables.aspx 
2.http://social.msdn.microsoft.com/Forums/zh-TW/240/thread/850f5bf2-79b5-4f32-ba40-0bba2db1e929
3.http://www.dotnetfunda.com/interview/exam297-what-is-temp-table-and-@table-variable-in-sql-server.aspx 
http://www.dotblogs.com.tw/hellouk/archive/2010/10/07/18163.aspx

posted on 2011-06-24 10:05  nintenyun  阅读(332)  评论(0)    收藏  举报