Hintergrund: Einige unserer Standardspalteneinschränkungen wurden ohne explizite Namen generiert, sodass wir unterhaltsame Namen erhalten, die von Server zu Server variieren, wie z. DF__User__TimeZoneIn__5C4D869D
Ich würde es vorziehen, wenn sie alle mit einer einheitlichen Benennung wie verwaltet DF_Users_TimeZoneInfo
werden könnten, damit wir sicherstellen können, dass die entsprechenden Einschränkungen für zukünftige Zieltabellen bestehen (wie im RedGate-Vergleich oder sogar nur visuell).
Ich habe ein Skript, das hauptsächlich für das funktioniert, was ich will:
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[_][_]%'
Aber das gibt mir nur eine Ergebnismenge und nichts, was ich tatsächlich an einen Exec oder was auch immer weitergeben kann.
Wie kann ich dies tun, damit ich diese sp_rename
Skripte einfach ausführen kann, ohne alle zurückgegebenen Elemente kopieren und in ein neues Abfragefenster einfügen und erneut ausführen zu müssen? Ich versuche, so viele Tastenanschläge wie möglich zu speichern, damit ich dies in vielen Umgebungen korrigieren kann .