【发布时间】:2016-09-16 20:42:34
【问题描述】:
使用 SQL Server 2014:我正在处理一个包含许多未命名默认约束的大型生产数据库。
未命名的默认约束会导致许多问题,因为它们在我填充数据库模式填充脚本的每个“DEV”或“QA”环境中都会获得一个随机名称。随机的默认约束名称会导致 SSDT 架构比较/更新脚本失败。
我需要将生产数据库的默认列约束正确命名为适当的名称,因此当我编写数据库架构脚本时,它们不会获得随机名称。
我使用以下查询来获取未命名的默认约束列表:
select
t.name, c.name, d.name, definition
from
sys.tables t
join
sys.default_constraints d on d.parent_object_id = t.object_id
join
sys.columns c on c.object_id = t.object_id
and c.column_id = d.parent_column_id
有 100 多个 :(
是否有任何“安全”的方法可以将所有未命名的默认约束重命名为适当的名称,这样它们就不会考虑“未命名”并且不会在每个环境中获得随机名称?
我正在考虑扩展上述查询并生成 sp_rename 语句。由于我正在处理生产数据库,因此我想找到最安全的方法。
解决这个问题最可靠和最安全的方法是什么?
【问题讨论】:
-
去吧,生成那些重命名语句。
标签: sql-server