0

我正在尝试通过修改现有数据库来设置新数据库。我看到如果我尝试做一个更新语句来修改主键,sql server 会给出以下错误:

Cannot update identity column 'columnname'.

我可以看到我将不得不解决这个问题,但我想知道,为什么 SQL Server 首先有这个限制?它让我们可以插入一个标识列,那为什么不更新呢?

4

1 回答 1

1

标识列通常用作外键。也就是说,还有其他表和数据库存储标识列值而不是复制行。如果更新标识列,所有外键都会中断,所以不要这样做。即使您认为它不是真正的外键,或者您确定可以更新所有其他数据库,这就是 SQL 的工作方式,因此不要尝试“解决”它。

如果要设置新数据库,请在新数据库中创建新密钥,不要更改现有密钥。

于 2013-11-07T23:22:54.747 回答