2010-02-11 85 views
1

我可以在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 

如果表存在,它将不起作用,但如果表不存在,则会创建该表。我如何获得它插入到现有的表中?

回答

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 

你也不必在这种情况下,别名

+0

谢谢!我在想什么? – user269186 2010-02-11 16:39:53

0

要插入到现有的表,使用INSERT INTO,而不是`SELECT INTO

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 
+0

会这样做,谢谢你的提示。 – user269186 2010-02-11 16:41:04