身份插入问题

时间:2011-07-06 17:47:38

标签: sql sql-server-2008 insert identity

我正在尝试运行此脚本:

SET IDENTITY_INSERT dbo.Message ON
INSERT INTO dbo.Message
SELECT (Values I want to insert)

当我这样做时,我仍然得到错误 *只有在使用列列表并且IDENTITY_INSERT为ON时,才能指定表'dbo.Message'中标识列的显式值。*

我做错了什么?

3 个答案:

答案 0 :(得分:3)

错误的关键是“使用列列表时”。你想要:

SET IDENTITY_INSERT dbo.Message ON
INSERT INTO dbo.Message (column1, column2, ...) -- Added column list here
SELECT (Values I want to insert)

答案 1 :(得分:2)

您需要像错误消息所说的那样做。将代码格式化为:

INSERT INTO dbo.Message
(col1, col2, col3, col4)
SELECT Col1, col2, col3, col4
FROM OtherTable

您需要INSERT行后面的字段列表,并且需要在SELECT - SELECT *中指定字段名称才能生效。

答案 2 :(得分:0)

您必须在Insert Statement和select子句中提及所有列Name。 有点像这样。

插入到tbl中 ( [COL1] [COL2] ) 选择 [COL1] [COL2]