我的公司有一个带有一堆数据库表的应用程序,这些表用于使用序列表来确定要使用的下一个值。最近,我们将其切换为使用标识属性。问题是,为了将客户端升级到最新版本的软件,我们必须更改大约150个表来识别。要手动执行此操作,您可以右键单击表,选择设计,将(是标识)更改为“是”,然后保存表。根据我的理解,在后台,SQL Server将其导出到临时表,删除表,然后将所有内容复制回新表。客户端可能有自己独特的索引,也可能有其他特定于客户端的东西,因此制作通用脚本实际上并不是一种选择。
如果有一个存储过程来编写此任务的脚本而不是在GUI中执行它(这需要FOREVER),那真的很棒。我们创建了一个可以执行此操作的宏,但即使这样,它也需要很长时间才能运行并且容易出错。类似于:exec sp_change_to_identity'table_name','column name'
这样的事情存在吗?如果没有,你会如何处理这种情况?
更新:这是SQL Server 2008 R2。
答案 0 :(得分:0)
这就是SSMS似乎所做的事情: