如何在现有表中执行与“Tsql select into”等效的操作

如何在现有表中执行与“Tsql select into”等效的操作,sql,sql-server,tsql,Sql,Sql Server,Tsql,使用tsql、SQLServer2005 我想将表2中的记录插入到现有的表1中 我可以使用以下方法轻松地将其输入到新表table1中: select facilabbr, unitname, sortnum into table1 from table2 有什么想法吗?假设您只想添加,并且列匹配: INSERT INTO Table1 SELECT facilabbr, unitname, sortnum FROM table2 如果要替换,且列仍然匹配: Truncate T

使用tsql、SQLServer2005

我想将表2中的记录插入到现有的表1中 我可以使用以下方法轻松地将其输入到新表table1中:

select facilabbr, unitname, sortnum into table1 from table2   
有什么想法吗?

假设您只想添加,并且列匹配:

INSERT INTO Table1
    SELECT facilabbr, unitname, sortnum FROM table2
如果要替换,且列仍然匹配:

Truncate Table1
INSERT INTO Table1
    SELECT facilabbr, unitname, sortnum FROM table2
如果要替换,但列不匹配:

DROP Table1
SELECT facilabbr, unitname, sortnum INTO Table1 FROM table2

应该有效。

是的,此语法有效,但如果您不是专门执行此操作,并且打算重复使用代码,则最好在插入部分包含列列表。我一直在写一系列关于坏习惯的文章,这当然是其中之一。列匹配-这是否要求它们完全匹配,或者只要求目标具有要发送的列?
INSERT INTO table1
SELECT facilabbr, unitname, sortnum FROM table2
INSERT INTO TABLE1 T1 (T1.FIELD1, T1.FIELD2)
SELECT (T2.FIELD1, T2.FIELD2)
FROM TABLE2 T2