SQL Server 2005:在两个主键之一上设置自动增量时出错

Posted

技术标签:

【中文标题】SQL Server 2005:在两个主键之一上设置自动增量时出错【英文标题】:SQL Server 2005: Getting error when setting auto increment on one of two primary keys 【发布时间】:2010-07-26 07:14:33 【问题描述】:

我收到一个错误 “当 IDENTITY_INSERT 设置为 OFF 时,无法为表 'table' 中的标识列插入显式值。”

该表有两个主键,一个设置为自增,一个设置为 i 传入的值。

这在 SQL Server 2005 中是否可行?还是我错过了什么?

非常感谢。

【问题讨论】:

你怎么能做两个主键?你只能有一个pk。 好吧..我们确实有复合主键。尽管我不确定主键的最大数量。您只需按 ctrl 并单击要设置为主键的列,右键单击并“设置主键”。 :) 希望这就是你要找的。​​span> 【参考方案1】:

您正在尝试将值插入标识列 你可以这样做

SET IDENTITY_INSERT TableName ON
INSERT INTO TableName() VALUES ()
SET IDENTITY_INSERT TableName OFF

http://msdn.microsoft.com/en-us/library/ms188059.aspx

【讨论】:

我想这就是我的问题的答案。尽管我的解决方案是停止尝试将值插入自动递增列。谢谢nonnb!!~~

以上是关于SQL Server 2005:在两个主键之一上设置自动增量时出错的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver2005触发器问题

JAVA中用啥方法向SQL server2005中插入一条数据并返回他的主键值

SQL Server 2005 会因为我使用 nvarchar(50) 而不是整数作为主键而惩罚我吗?

sql2005 中的把2个表创建成一个视图

sql server 2005 中的内连接和外连接 怎么理解?

SQL Server 2005 密钥死锁