Sql-Server

為什麼不能向 SQL Server 中的現有列添加標識?

  • June 17, 2021

身份列有什麼特別之處?

我很確定有一個正當的理由,但我試圖更好地理解 SQL。

那麼,一個身份列有什麼特別之處,以至於回想起來不能輕易添加呢?

為什麼每次插入新行時,這不僅僅是一個單一的 int/bigint 標誌?

每行是否有任何物理儲存的東西,這是一個困難的過程?

如果我正確理解了您的問題,那麼您不是在問如何創建具有新IDENTITY值的新列。您在問為什麼我們不能ALTER TABLE tbl ALTER COLUMN col int IDENTITY在現有列上發布。

正如你所說,它實際上是一個DEFAULT帶有計數器的約束。

我認為答案很簡單,它從未實施過,顯然沒有足夠的人要求它。所以我們必須使用變通方法。

我認為添加這個特性沒有什麼大的困難,除了它必須被指定、實現和測試。因此,如果您需要此功能,請投票支持 Azure 上的現有回饋問題

引用自:https://dba.stackexchange.com/questions/289583