[英]Is it necessary to use # for creating temp tables in SQL server?
在SQL Server中創建臨時表之前是否需要使用#
?
例:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
對於ItemBack1,是否需要使用#
符號?
如果沒有,那么#
在創建臨時表時有什么用?
是。 您需要在表名前加上“#”(哈希)來創建臨時表。
如果您以后不需要該表,請繼續並創建它。 臨時表與普通表非常相似。 但是,它在tempdb中創建。 此外,它只能通過當前會話訪問,即對於EG:如果另一個用戶試圖訪問您創建的臨時表,他將無法這樣做。
“##”(雙重哈希創建“全局”臨時表,也可以被其他會話訪問。
有關臨時表基礎知識,請參閱以下鏈接: http : //www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005
如果表的內容少於5000行且不包含數據類型(如nvarchar(MAX),varbinary(MAX)),請考慮使用表變量。
它們是最快的,因為它們就像存儲在RAM中的任何其他變量一樣。 它們也存儲在tempdb中,而不是存儲在RAM中 。
DECLARE @ItemBack1 TABLE
(
column1 int,
column2 int,
someInt int,
someVarChar nvarchar(50)
);
INSERT INTO @ItemBack1
SELECT column1,
column2,
someInt,
someVarChar
FROM table2
WHERE table2.ID = 7;
有關表變量的更多信息: http : //odetocode.com/articles/365.aspx
這兩個表ItemBack1
和#ItemBack1
之間的區別在於,第一個是持久性(永久性),而另一個是臨時性的。
現在再來看看你的問題吧
是否有必要使用#在sql server中創建臨時表?
答案是肯定的 ,因為如果沒有前面的#
,表將不是臨時表,它將獨立於所有會話和范圍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.