gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 23:51:46 28 4
gpt4 key购买 nike

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

谷歌搜索后我发现你不能使用Alter table语法来修改列并使其成为缩进列。
链接#1:How do I add the identity property to an existing column in SQL Server
链接#2:Adding an identity to an existing column -SQL Server

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

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

理想情况下,所有这些步骤都将由这样的脚本/工具/实用程序完成:

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

最佳答案

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

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

编辑:The SSMS error is not an error, it's a safety check that can be switched off

关于用于 alter table alter columns IDENTITY(1,1) 的 sql server helper 存储过程或实用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1367859/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com