得到一個複雜的SELECT查詢,我想從中插入所有行到表變量中,但T-SQL不允許它。SELECT INTO T-SQL中的表變量
沿着同樣的路線,您不能在SELECT INTO或INSERT EXEC查詢中使用表變量。 http://odetocode.com/Articles/365.aspx
短例如:
declare @userData TABLE(
name varchar(30) NOT NULL,
oldlocation varchar(30) NOT NULL
)
SELECT name, location
INTO @userData
FROM myTable
INNER JOIN otherTable ON ...
WHERE age > 30
在表變量的數據將在以後用於插入/更新它放回不同的表(主要與次要更新相同數據的複製)。這樣做的目標是簡單地使腳本更易讀,更容易定製,而不是直接將SELECT INTO
放入正確的表格中。 性能不是問題,因爲rowcount
相當小,只有在需要時才手動運行。
...或者只是告訴我,如果我做錯了。
如果您將「SELECT name,location FROM myTable」作爲將要插入到UserData表中的值,則select中變量的名稱是否與表定義中的名稱匹配無關緊要。你選擇'name'進入UserData'name'變量,但是你選擇'location'並以某種方式將它分配給UserData'oldlocation'變量。 SQL會自動映射它們還是會拋出某種異常? – 2015-11-17 07:23:38
名稱無關緊要,只有列類型。 – CristiC 2015-11-18 04:26:35
哇,這是有道理的,但在同一時間在我的語法分析器感到有點冒犯:) – 2015-11-18 04:28:14