quinta-feira, 15 de novembro de 2012

Renomeando Colunas e Tabelas (How to Rename a Column Name or Table Name)

Vamos usar o comando sp_rename (Transact-SQL)

Observações:

Altera o nome de um objeto criado pelo usuário no banco de dados atual.  Esse objeto pode ser uma tabela, índice, coluna, tipo de dados de alias ou tipo de dados CLR definido pelo usuário do Microsoft .NET Framework Common Language Runtime.

Sintaxe:

sp_rename [ @objname = ] 'object_name' , [ @newname = ] 'new_name' [ , [ @objtype = ] 'object_type' ]

Exemplos:

A.Renomeando uma tabela


O exemplo a seguir renomeia a tabela SalesTerritory como SalesTerr no esquema Sales.
USE AdventureWorks2012;
GO
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr';
GO

B.Renomeando uma coluna

O exemplo a seguir renomeia a coluna TerritoryID na tabela SalesTerritory como TerrID.
USE AdventureWorks2012;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

C.Renomeando um índice

O exemplo a seguir renomeia o índice IX_ProductVendor_VendorID como IX_VendorID.
USE AdventureWorks2012;
GO
EXEC sp_rename N'Purchasing.ProductVendor.IX_ProductVendor_VendorID', N'IX_VendorID', N'INDEX';
GO
          

D.Renomeando um tipo de dados de alias

O exemplo a seguir renomeia o tipo de dados de alias Phone como Telephone.
USE AdventureWorks2012;
GO
EXEC sp_rename N'Phone', N'Telephone', N'USERDATATYPE'; 
GO
            


Observações Importantes:


Você só pode alterar o nome de um objeto ou tipo de dados no banco de dados atual. Os nomes da maioria dos tipos de dados do sistema e objetos do sistema não podem ser alterados.

sp_rename renomeia automaticamente o índice associado sempre que uma restrição PRIMARY KEY ou UNIQUE é renomeada. Se um índice renomeado for vinculado a uma restrição PRIMARY KEY, a restrição PRIMARY KEY também será renomeada automaticamente por sp_rename.

sp_rename pode ser usado para renomear índices XML primários e secundários.

Renomear um STORE PROICEDURE, FUCNTION, VIEW ou TRIGGER não alterará o nome do objeto correspondente na coluna definition da exibição de catálogo sys.sql_modules. Portanto, é recomendável que sp_rename não seja usado para renomear esses tipos de objetos. Em vez disso, cancele e recrie o objeto com o nome novo.

A renomeação de um objeto, como uma tabela ou coluna, não renomeará automaticamente as referências a esse objeto. É necessário modificar manualmente todos os objetos que fazem referência ao objeto renomeado. Por exemplo, se você renomear uma coluna de tabela e aquela coluna for referenciada em uma TRIGGER, será necessário modificar a TRIGGER para que ele reflita o nome novo da coluna. Use sys.sql_expression_dependencies para listar dependências no objeto antes de renomeá-lo.

Nenhum comentário: