收到了一个复杂的SELECT查询语句,想要将所有行插入到一个表变量中,但是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
相当小,并且只在需要时手动运行。...或者告诉我是否完全错误。