我正在尝试运行此脚本:
SET IDENTITY_INSERT dbo.Message ON
INSERT INTO dbo.Message
SELECT (Values I want to insert)
当我这样做时,我仍然得到错误 *只有在使用列列表并且IDENTITY_INSERT为ON时,才能指定表'dbo.Message'中标识列的显式值。*
我做错了什么?
答案 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]