sql server helper存储过程或alter table的实用程序alter column IDENTITY(1,1)

Bin*_*ony 5 sql sql-server stored-procedures sql-server-2005

我想将sql server 2005表中的列修改为IDENTITY(1,1)
顺便提一下,此表为空,要更改的列是主键.
此列也是另外两个表的外键.

在谷歌搜索后,我发现你不能使用Alter表语法来修改列并使其成为一个缩进列.
链接#1:如何将标识属性添加到SQL Server
链接#2 中的现有列:向现有列添加标识-SQL Server

我最后检查了从属表(其中2个)删除外键(从SSMS生成脚本)然后删除主表然后用身份重新创建.(也可以在这里尝试重命名选项)
然后为早期的两个表重新创建外键.

但所有这些都是手动工作,任何脚本或SP都可以使这更容易.

理想情况下,所有这些步骤都可以通过这样的脚本/工具/实用程序来完成:

  1. 检查从属表键
  2. 为此生成创建和删除外键脚本
  3. 为主表生成创建脚本
  4. 删除主表(如果表有数据,则重命名表)
  5. 重新创建启用了标识列的表
  6. 重新创建外键

gbn*_*gbn 4

您可以使用 SSMS 生成脚本(编辑表,保存脚本),但除此之外,正如您所确定的,这是一个手动过程。

SSMS 脚本将获取依赖项等。对于此类工作,我倾向于使用 SSMS 生成一个基本脚本,稍微修改一下,小心运行它,然后使用比较工具(例如 Red Gate Compare)生成一个更安全的版本。

编辑:SSMS错误不是错误,而是可以关闭的安全检查