Sql server 无法更新SQL Server 2014的标识列

Sql server 无法更新SQL Server 2014的标识列,sql-server,tsql,sql-server-2014,Sql Server,Tsql,Sql Server 2014,我正在尝试更新Identity列,但到目前为止,它在任何关系表中都不存在 如果我运行SQL语句,如图所示: SET IDENTITY_INSERT Client..dt_Domain ON; UPDATE Client..dt_Domain SET DomainID = 1 WHERE DomainID = 2 AND ClientID = 3 SET IDENTITY_INSERT Client..dt_Domain OFF; 我得到以下错误: Msg 8102,第16级,状态1,第6行

我正在尝试更新Identity列,但到目前为止,它在任何关系表中都不存在

如果我运行SQL语句,如图所示:

SET IDENTITY_INSERT Client..dt_Domain ON;

UPDATE Client..dt_Domain
SET DomainID = 1
WHERE DomainID = 2 AND ClientID = 3

SET IDENTITY_INSERT Client..dt_Domain OFF;
我得到以下错误:

Msg 8102,第16级,状态1,第6行
无法更新标识列“DomainID”


我想没有办法更新身份栏


但是,你可以删除旧记录并通过在

@JamesZ上设置
Identity\u Insert
插入与你所需的身份号码相同的记录。在发布这个问题之前,我看到了这个解决方案,但这对我不起作用。这个答案有什么不起作用?因为这是正确的(也是唯一真正的方法)。如果您的表中没有DomainID=1的内容,则插入所有相同的值,其中DomainID为1,删除DomainID=2…@ZLK如果我尝试以
Msg 8102,级别16,状态1的身份插入,则会出现相同的错误,第6行##无法更新标识列“DomainID”。
@ZLK插入记录然后删除是最后一个解决方案,如果没有任何效果:)您可以使用
设置标识插入将显式值插入标识列。。。在
help上-但您永远不能更新标识列中的现有值。并没有机制,并没有黑客,并没有“变通方法”-这就是做不到的。我尝试了插入,但也得到了相同的消息。因此,我添加了记录,然后考虑更新它。但现在我又被卡住了。您的插入是否违反了任何约束条件,如Unique或Primary Key@AaBaDomainID是PK,ClientID是FK,其余的表中没有键。@AaBa可能已经有一个
DomainID=1
Nope的记录,没有ID为1的行。不管怎样,我采取了一种愚蠢的方法,继续前进,因为我需要修复另外8张这样的桌子。呸!谢谢你的时间@shaker