Sql-Server
為什麼不能向 SQL Server 中的現有列添加標識?
身份列有什麼特別之處?
我很確定有一個正當的理由,但我試圖更好地理解 SQL。
那麼,一個身份列有什麼特別之處,以至於回想起來不能輕易添加呢?
為什麼每次插入新行時,這不僅僅是一個單一的 int/bigint 標誌?
每行是否有任何物理儲存的東西,這是一個困難的過程?
如果我正確理解了您的問題,那麼您不是在問如何創建具有新
IDENTITY
值的新列。您在問為什麼我們不能ALTER TABLE tbl ALTER COLUMN col int IDENTITY
在現有列上發布。正如你所說,它實際上是一個
DEFAULT
帶有計數器的約束。我認為答案很簡單,它從未實施過,顯然沒有足夠的人要求它。所以我們必須使用變通方法。
我認為添加這個特性沒有什麼大的困難,除了它必須被指定、實現和測試。因此,如果您需要此功能,請投票支持 Azure 上的現有回饋問題。