在SQL Server中創建臨時表之前是否需要使用#
?是否需要使用#來在SQL Server中創建臨時表?
實施例:
SELECT column1, column2, someInt, someVarChar
INTO ItemBack1
FROM table2
WHERE table2.ID = 7
對於ItemBack1是它需要使用#
符號?
如果不是,那麼#
在創建臨時表時有什麼用處?
在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),考慮使用表變量。
它們是最快的,因爲它們就像任何其他變量它們存儲在內存。They are stored in tempdb as well, not in 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
在SQL Server中,SELECT語法是INSERT INTO @ ItemBack1 SELECT column1,column2,someInt,someVarChar FROM table2 WHERE table2.ID = 7 – mhenry1384
變量表不存儲在RAM中,它們也存儲在tempdb中。我建議不要使用表變量,除非你瞭解它們的一些缺點,因爲它們的行數會自動設置爲1,並且可能會導致錯誤的計劃。 – ConstantineK
您可以給5000行,nvarchar(max),varbinary(max)限制的來源嗎?這是允許的,但我不知道爲什麼不推薦。 – Brad
的差值表和#ItemBack1
之間這兩ItemBack1
是,在所述第一持續存在(永久),其中作爲另一種是暫時的。
現在,如果再看看你的問題
是否有必要使用#在SQL Server中創建臨時表?
答案是是,因爲如果沒有這個前#
該表將不會是一個臨時表,這將是獨立於所有會話和範圍的。
是的。 #創建臨時表。沒有它創建一個表。 –