如您所知,当我们设置 PK 和/或约束时,将自动为我们创建一个键/约束名称(
PK_...
,DF_...
)。但是每当我重命名列名和/或表名时,这些键和约束都不会相应地自动重命名。
SQL 中是否有任何设置允许它自动执行?
AFAIK 没有设置。重命名列名和/或表名后,您必须使用
sp_rename
来重命名约束。
相关阅读:http://davidbrycehoward.com/archive/2011/01/naming-and-renaming-database-constraints/
而不是一张表重命名查询
EXEC sp_rename 'OldName', 'NewName'
您可以获取重命名查询列表(针对表和约束):
declare
@old nvarchar(100),
@new nvarchar(100)
set @old = 'OldName'
set @new = 'NewName'
select 'EXEC sp_rename ''' + name + ''', ''' +
REPLACE(name, @old, @new) + ''''
from sys.objects
where name like '%' + @old + '%'
然后执行您在此列表中收到的每个查询。
这对于重命名 MSSQL 中的表非常有用!