【发布时间】:2011-04-19 18:57:12
【问题描述】:
有一个复杂的 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 相当小,并且仅在需要时手动运行。
...或者只是告诉我我是否做错了。
【问题讨论】:
标签: sql-server tsql insert table-variable