2

我有一张Table1有 59 列的表。Table2最后是Table1一个额外列的副本COLUMN 60。因此table2有 60 列。

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

像这样的东西

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

我怎样才能做到这一点?使用上面的代码给我一个错误:

只有在使用列列表并且 IDENTITY_INSERT 为 ON 时,才能为表“TableLocation”中的标识列指定显式值。

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

4

3 回答 3

8

尝试这个:

SET IDENTITY_INSERT dbo.Table2 ON

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

SET IDENTITY_INSERT dbo.Table2 OFF
于 2012-12-07T15:49:47.367 回答
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
于 2012-12-07T15:49:54.963 回答
0

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

INSERT INTO Table2
SELECT * FROM Table1

ALTER TABLE Table2
ADD Column60 varchar
于 2012-12-07T15:52:48.410 回答