INSERT到具有子查询的表

时间:2010-02-11 15:58:22

标签: sql insert triggers

我可以在SQL 2005中执行此操作吗?

SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,inserted.exhid AS RefID INTO mytable FROM inserted 
    WHERE inserted.altname IS NOT NULL

如果表存在,它将不起作用,但如果表不存在则将创建表。如何将其插入现有表格?

3 个答案:

答案 0 :(得分:5)

像这样

INSERT INTO mytable
SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,
 inserted.exhid AS RefID  FROM inserted 
    WHERE inserted.altname IS NOT NULL

在这种情况下你也不需要别名

答案 1 :(得分:3)

SQLMenace的答案是正确的。但是要添加它,我建议在表结构/列顺序发生变化的情况下明确列出要插入的列是一个好习惯,这样你的proc就会更好地改变工作。

INSERT INTO mytable ( 
ExhId, 
ExhName, 
RefID) 
SELECT 'C'+inserted.exhid,
inserted.exhname, 
inserted.exhid 
FROM inserted 
WHERE inserted.altname IS NOT NULL

答案 2 :(得分:0)

要插入现有表格,请使用INSERT INTO而不是“SELECT INTO