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