2011-07-06 36 views
2

我试图运行此脚本:标识插入问题

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

当我做我仍然得到错误 *仅可指定表“dbo.Message”的标识列的显式值当使用列列表且IDENTITY_INSERT为ON时。*

我在做什么错?

回答

3

错误的关键在于“何时使用列列表”。您想要:

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

记住:SET IDENTITY_INSERT dbo.Message OFF! –

2

您需要按照错误消息所述进行操作。 - SELECT *将无法​​正常工作

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

你需要的字段列表中INSERT行之后,你需要在你的SELECT指定字段名:像格式化你的代码。

0

您必须提及Insert语句和select子句中的所有列名称。 有些事情是这样的。

插入插入TBL ( [COL1], [COL2] ) 选择 [COL1], [COL2]