Segundo plano: algumas de nossas restrições de coluna padrão foram geradas sem nomes explícitos, por isso, temos nomes divertidos que variam de servidor para servidor, como: DF__User__TimeZoneIn__5C4D869D
Eu preferiria que todos fossem gerenciáveis com nomes consistentes, DF_Users_TimeZoneInfo
para que possamos garantir a existência de restrições apropriadas em futuras tabelas de destino (como na comparação do RedGate ou apenas visualmente)
Eu tenho um script que funciona principalmente para o que eu quero:
select 'sp_rename N''[' + s.name + '].[' + d.name + ']'',
N''[DF_' + t.name + '_' + c.name + ']'', ''OBJECT'';'
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
join sys.schemas s
on t.schema_id = s.schema_id
WHERE d.NAME like 'DF[_][_]%'
Mas isso me dá um conjunto de resultados, e não algo que eu possa realmente passar para um executivo ou algo assim.
Como fazer isso para que eu possa executar esses sp_rename
scripts sem ter que recorrer a todos os elementos retornados e colá-los em uma nova janela de consulta e executá-los novamente? Tentando salvar o maior número possível de pressionamentos de tecla, para que eu possa corrigir isso em muitos ambientes.