為現有 SQL Server 欄位新增識別:兩種方法
直接在 SQL Server 中的現有欄位新增識別屬性並不是一項簡單的任務。 本文概述了實現此目的的兩種方法,每種方法都有自己的權衡:
方法1:建立帶有Identity的新表
此方法保留現有資料。
<code class="language-sql">CREATE TABLE dbo.Tmp_Names ( Id INT NOT NULL IDENTITY(1, 1), Name VARCHAR(50) NULL ) ON [PRIMARY] GO SET IDENTITY_INSERT dbo.Tmp_Names ON GO IF EXISTS (SELECT * FROM dbo.Names) INSERT INTO dbo.Tmp_Names (Id, Name) SELECT Id, Name FROM dbo.Names TABLOCKX GO SET IDENTITY_INSERT dbo.Tmp_Names OFF GO DROP TABLE dbo.Names GO EXEC sp_rename 'Tmp_Names', 'Names'</code>
方法2:新增新的身分列並取代舊的
此方法不會保留新身分列中的現有資料。
<code class="language-sql">ALTER TABLE Names ADD Id_new INT IDENTITY(1, 1) GO ALTER TABLE Names DROP COLUMN ID GO EXEC sp_rename 'Names.Id_new', 'ID', 'COLUMN'</code>
重要注意事項:
請記住在實現任一方法之前解決連結到原始主鍵列的任何外鍵約束。 否則將導致資料庫錯誤。
有關更多詳細資訊和故障排除,請參閱此 Microsoft SQL Server 論壇主題:
https://www.php.cn/link/16dd8c942ad630be7e5a12b681b3f5c4
以上是如何為現有 SQL Server 欄位新增識別屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!