摘要:#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指令,當批次指令執行完成後即自動被刪除
[參考資料]