我正在使用SQL Server2008。假设我有一个像这样的表(下面表示列名/类型):
ID - Int (Primary Key) [This is set to autoincrement]
X - varchar(MAX)
Y - varchar(MAX)
Z - varchar(MAX)
我正在尝试建立一个通用查询,该查询基于列之一的a值,该查询可以将现有记录的值复制到新记录中,更改某些列的值并自然增加ID。考虑下面的伪代码(我想不出一种方法来提取它:/):
1)
SELECT *
FROM TABLE
WHERE X = "Hello"
INTO TEMPTABLE
2)
COPY RESULTS
FROM TEMPTABLE
INTO TABLE
SET X = "HI HI HI" AND SET Y "HI!"
上述预期结果将是1)馈给2)中记录创建的结果集。应该自然地复制Z的值,因为我们没有另外设置它。
答案 0 :(得分:3)
INSERT INTO foobar (x, y, z)
SELECT 'HI HI HI', 'HI!', z FROM foobar WHERE x = 'Hello'