首页 > 数据库 > mysql教程 > 如何向现有 SQL Server 列添加标识属性?

如何向现有 SQL Server 列添加标识属性?

Patricia Arquette
发布: 2025-01-22 23:22:11
原创
882 人浏览过

How to Add an Identity Property to an Existing SQL Server Column?

向现有 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板