有一个复杂的 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
它相当小,并且仅在需要时手动运行。
...或者只是告诉我我是否做错了。