Antecedentes: algunas de nuestras restricciones de columna predeterminadas se generaron sin nombres explícitos, por lo que obtenemos nombres divertidos que varían de un servidor a otro como: DF__User__TimeZoneIn__5C4D869D
Preferiría que todos sean manejables con un nombre consistente como DF_Users_TimeZoneInfo
para que podamos asegurarnos de que existan las restricciones apropiadas en las tablas de destino futuras (como en la comparación de RedGate, o incluso solo visualmente)
Tengo un script que funciona principalmente para lo que quiero:
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[_][_]%'
Pero esto solo me da un conjunto de resultados, y no algo que realmente pueda pasar a un ejecutivo o lo que sea.
¿Cómo puedo hacer esto para poder ejecutar esos sp_rename
scripts sin tener que recurrir a copiar todos los elementos devueltos y pegarlos en una nueva ventana de consulta y ejecutarlos nuevamente? Intento guardar tantas pulsaciones de teclas como sea posible para poder corregir esto en muchos entornos.