SQL:使用SELECT将数据插入带有额外列的表中

时间:2012-12-07 15:46:55

标签: sql sql-server select insert

我有一个包含59列的表Table1Table2Table1的副本,最后有一列,COLUMN 60。因此table2有60列。

我正在尝试将值从table1复制到table2,并将table2中额外列的值设置为“值”

像这样的东西

INSERT INTO Table2
   SELECT * FROM Table1, 'value' AS 'COLUMN 60'

我该怎么做?使用上面的代码给我一个错误:

  

只有在使用列列表和IDENTITY_INSERT时,才能指定表'TableLocation'中标识列的显式值   是开启。

我不想指定列名,因为它们太多了。

3 个答案:

答案 0 :(得分:8)

试试这个:

SET IDENTITY_INSERT dbo.Table2 ON

INSERT INTO Table2
SELECT *, 'value' AS 'COLUMN 60' FROM Table1

SET IDENTITY_INSERT dbo.Table2 OFF

答案 1 :(得分:3)

您知道可以直接从SSMS拖动列名吗?导航到表格,然后将列文件夹拖到查询窗口中,它将列出所有列

现在,如果您想保留标识值,请使用

SET IDENTITY_INSERT dbo.Table2 ON

--INSERT HERE
-- make sure to list all the columns, it is required

SET IDENTITY_INSERT dbo.Table2 OFF

答案 2 :(得分:0)

是否真的需要在一个声明中完成?

INSERT INTO Table2
SELECT * FROM Table1

ALTER TABLE Table2
ADD Column60 varchar