問題:您需要在已包含資料的 SQL Server 資料表中新增識別列。 不支援直接更改現有列以成為身分。
解:有兩種方法可以實現此目的:
方法一:新建表
此方法保留現有資料。 使用識別列建立一個新表,複製數據,並取代舊表。
T-SQL:
<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:新增新的身分列
此方法新增一個新的識別列,刪除舊的主鍵,並重新命名新列。 注意:原始主鍵列中的現有資料將不會被保留。
T-SQL:
<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>
重要注意事項:
這些資訊對原文提供了更簡潔和精簡的解釋,同時保留了核心意義並保留了圖像。
以上是如何在現有的包含資料的 SQL Server 資料表中新增識別列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!