Beg*_*ner 426 sql sql-server-2008
当IDENTITY_INSERT
设置为OFF 时,为什么我在插入时出错?
如何在SQL Server 2008中正确启用它?是使用SQL Server Management Studio吗?
我运行了这个查询:
SET IDENTITY_INSERT Database. dbo. Baskets ON
Run Code Online (Sandbox Code Playgroud)
然后我在控制台中收到消息,命令已成功完成.但是当我运行应用程序时,它仍然给出了如下所示的错误:
Cannot insert explicit value for identity column in table 'Baskets' when
IDENTITY_INSERT is set to OFF.
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 716
根据MSDN通过SQL
SET IDENTITY_INSERT sometableWithIdentity ON
INSERT sometableWithIdentity (IdentityColumn, col2, col3, ...)
VALUES (AnIdentityValue, col2value, col3value, ...)
SET IDENTITY_INSERT sometableWithIdentity OFF
Run Code Online (Sandbox Code Playgroud)
完整的错误消息告诉您到底出了什么问题......
当IDENTITY_INSERT设置为OFF时,无法在表'sometableWithIdentity'中为identity列插入显式值.
小智 54
我有一个问题,即使在设置IDENTITY_INSERT后,它也不允许我插入它.
问题是我没有指定列名称,并且由于某种原因它不喜欢它.
INSERT INTO tbl Values(vals)
Run Code Online (Sandbox Code Playgroud)
所以基本上完成INSERT INTO tbl(cols)值(vals)
R.A*_*nso 35
导入:
您必须在INSERT
语句中写入列
INSERT INTO TABLE
SELECT * FROM
Run Code Online (Sandbox Code Playgroud)
是不正确的.
Insert into Table(Field1,...)
Select (Field1,...) from TABLE
Run Code Online (Sandbox Code Playgroud)
是正确的
小智 5
我知道这是一个较旧的线程,但是我碰到了这个。如果用户尝试在将其他会话设置为IDENTITY_INSERT ON之后运行“标识”列上的插入,那么他必然会遇到上述错误。
设置标识插入值和后续的插入DML命令将在同一会话中运行。
在这里,@ Beginner分别将“身份插入”设置为“开”,然后从他的应用程序运行插入。这就是为什么他得到以下错误:
Cannot insert explicit value for identity column in table 'Baskets' when
IDENTITY_INSERT is set to OFF.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
889438 次 |
最近记录: |