Como padronizar o nome de constraint no SQL Server

Fala pessoal, tudo bem?

Estou atuando em um projeto de sincronização de bancos de dados em um cliente que tem vários banco de dados (um por cliente dele) e alguns estão com nomes e estruturas fora do padrão.

Como ainda não há versionamento da estrutura do banco de dados correspondente por versão e estamos em fase inicial, vou repassar rapidamente alguns script para renomear algumas constrains que são criadas sem um nome definido e tem esse nome gerado aleatoriamente.

Utilizaremos a procedure Sp_rename.

Que tem sua sintaxe da seguinte ofrma:
sp_rename [ @objname = ] ‘object_name’ , [ @newname = ] ‘new_name’ [ , [ @objtype = ] ‘object_type’ ]

Para gerar todos os scripts, vamos rodar uma consulta na view de sistema sys.default_constraints.

Use nome_do banco
go

 SELECT 'exec sp_rename '''
    +Schema_name(d.Schema_id)+'.' 
    + '' + d.Name + ''''
    + ',''DF_' +Schema_Name(d.schema_id)
    +'_'+t.name
    +'_'+c.name+'''' as script
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

Essa consulta já gera os scripts de que renomearão os objetos.

Então é só executar esse resultado da coluna script e o novo nome padrão será definido.

Em breve vou postando os outros scripts utilizados com esse mesmo intiuito.


Abs

Deixe um comentário