Scénář:
Pracujete jako vývojář SQL Serveru, musíte si připravit skripty, které lze použít k přejmenování výchozích omezení podle standardů vaší společnosti. Vaše společnost chce pojmenovat výchozí omezení, např. 'DF_SchemaName_TableName_ColumnName'Řešení:
K přejmenování výchozích omezení můžeme použít sp_rename Stored Procedure. K přejmenování jednoho výchozího omezení můžeme použít skript jako nížeExec sp_rename 'Current_Default_Constraint_Name','New Default Constraint Name'
protože potřebujeme spustit tento skript pro všechna výchozí omezení, můžeme použít níže uvedený dotaz k vygenerovat přejmenovat výchozí omezení.
SELECT 'exec sp_rename ''' +Schema_name(d.Schema_id)+'.' + '' + d.Name + '''' + ',''DF_' +Schema_Name(d.schema_id) +'_'+t.name +'_'+c.name+'''' as RenameDefaultConstraintQuery FROM sys.default_constraints d INNER JOIN sys.columns c ON d.parent_object_id = c.object_id AND d.parent_column_id = c.column_id INNER JOIN sys.tables t ON t.object_id = c.object_id
Provedu výše uvedený dotaz na jedné z databází a dostal jsem pod výsledky. Pokud chcete některé tabulky vyloučit, můžete je vždy filtrovat v klauzuli where.
Jak přejmenovat všechna výchozí omezení v databázi SQL Server podle konvence pojmenování |
Video ukázka:Jak přejmenovat všechna výchozí omezení podle konvencí pojmenování v databázi SQL Server