Sql 插入到具有子查询的表中
我可以在SQL2005中这样做吗Sql 插入到具有子查询的表中,sql,insert,triggers,Sql,Insert,Triggers,我可以在SQL2005中这样做吗 SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,inserted.exhid AS RefID INTO mytable FROM inserted WHERE inserted.altname IS NOT NULL 如果该表存在,它将不起作用,但如果该表不存在,它将创建该表。如何将其插入到现有表中?要插入到现有表中,请使用insert into而不是'SELECT in
SELECT 'C'+inserted.exhid AS ExhId,inserted.exhname AS ExhName,inserted.exhid AS RefID INTO mytable FROM inserted
WHERE inserted.altname IS NOT NULL
如果该表存在,它将不起作用,但如果该表不存在,它将创建该表。如何将其插入到现有表中?要插入到现有表中,请使用
insert into
而不是'SELECT into要插入到现有表中,请使用insert into
而不是'SELECT into这样做
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
在这种情况下,您也不需要别名
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
在这种情况下,您也不需要别名sqlnemage的答案是正确的。但要补充一点,我建议在表结构/列顺序发生变化时,显式列出要插入的列是一种好的做法,这样可以更好地保持进程的一致性
INSERT INTO mytable (
ExhId,
ExhName,
RefID)
SELECT 'C'+inserted.exhid,
inserted.exhname,
inserted.exhid
FROM inserted
WHERE inserted.altname IS NOT NULL
SqlMenage的回答是正确的。但要补充一点,我建议在表结构/列顺序发生变化时,显式列出要插入的列是一种好的做法,这样可以更好地保持进程的一致性
INSERT INTO mytable (
ExhId,
ExhName,
RefID)
SELECT 'C'+inserted.exhid,
inserted.exhname,
inserted.exhid
FROM inserted
WHERE inserted.altname IS NOT NULL