Compartilhar via


Considerações antes de renomear objetos de banco de dados

Antes de renomear um objeto de banco de dados in Visual Studio Team System Database Edition, você deve considerar as questões a seguintes:

Impedindo a perda de dados quando renomear tabelas e colunas

Renomear colunas nos modos de exibição

Efeitos de erros de compilação

Efeitos sobre planos de geração de dados

Efeitos em testes de unidade

Efeitos em Scripts T-SQL

Impedindo a perda de dados quando renomear tabelas e colunas

Quando você renomeia um objeto de banco de dados, o script de implantação é gerado quando você constrói o projeto reflete essa alterar.Quando você renomeia uma coluna ou uma tabela, o script descarta o objeto original que tem o nome original e adiciona a nova coluna ou tabela com o novo nome.Se você implantar essa alterar no banco de dados existente sistema autônomo uma atualização, sistema autônomo dados na coluna ou tabela original serão perdidos.

Você pode controlar se a coluna original ou a tabela é descartada, definindo a opção apropriada nas propriedades do projeto.Você pode fazer isso, abra as propriedades do projeto, clicando no Compilação guia e selecionando ou limpando o Gerar instruções DROP para objetos que estão no banco de dados de destino, mas que não estão com o projeto de banco de dados a caixa de seleção.Se você marcar esta caixa de seleção, a drop demonstrativo para o objeto antigo está incluída no script de implantação é gerado quando você compilação o projeto. Se você desmarcar essa caixa de seleção, a drop demonstrativo para o objeto antigo não está incluída no script de implantação é gerado quando você compilação o projeto.

Para evitar uma possível perda de dados causada pelo drop demonstrativo, você deve planejar com antecedência. Os exemplos a seguir mostram abordagens que você pode usar para migrar seus dados com segurança:

  • Substitua instruções drop/adicionar por sp_rename instruções.

  • Não implante o drop demonstrativo. Você terá cópias do objeto antigo e novo objeto e você pode mover dados entre eles.Você pode mover os dados manualmente usando um select into ou Outros demonstrativo T-SQL. Você pode usar o programa de cópia em massa, Data transformação Services (SQL 2000) ou SQL servidor Integration Services (SQL 2005) para mover os dados automaticamente.

  • Antes de implantar a alterar, mova os dados da tabela antiga para um local temporário (por exemplo, para uma tabela em um banco de dados diferente).Implantar o drop e o add instruções. Mova os dados do local temporário para o novo objeto.Você pode mover os dados manualmente usando um select into ou Outros demonstrativo T-SQL. Você pode usar o programa de cópia em massa, Data transformação Services (SQL 2000) ou SQL servidor Integration Services (SQL 2005) para mover os dados automaticamente.

Para obter mais informações, consulte Protegendo dados durante uma operação de renomear.

Renomear colunas nos modos de exibição

Um modo de exibição consiste em uma demonstrativo que seleciona colunas de tabelas ou outros modos de exibição.sistema autônomo tabelas que são usadas no modo de exibição são conhecidas sistema autônomo sistema autônomo tabelas base ou tabelas base.Por exemplo, o código a seguir cria um modo de exibição que se baseia o HumanResources.Employee tabela:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

Quando você renomeia uma coluna em um modo de exibição, a coluna não é renomeada na tabela subjacente.Em vez disso, o nome no modo de exibição é serrilhado, sistema autônomo nos exemplos a seguintes:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title AS JobTitle
       FROM HumanResources.Employee

CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee
Observação:

Se um modo de exibição usar selecionar * para obter os dados da tabela subjacente, o * é expandido para listar as colunas individuais.A coluna renomeada é alias sistema autônomo nos exemplos anteriores.

Se desejar renomear a coluna no modo de exibição e da tabela subjacente, renomeie a coluna da tabela em vez disso, atualiza automaticamente a coluna no modo de exibição.

Efeitos de erros de compilação

Quando você renomear um objeto de banco de dados em Database Edition, é feita uma tentativa atualização outros objetos de banco de dados planos de geração de dados, testes de unidade e scripts que fazem referência a esse objeto.Enquanto você trabalha em um projeto de banco de dados, você pode executar uma ação que apresenta um erro de compilação e, em seguida, executar outra ação que corrige que criam o erro.Por exemplo, você pode excluir uma tabela e, em seguida, você pode atualização um modo de exibição que depende dessa tabela para remover a referência à tabela excluída.Entre a tabela de excluir e atualizar o modo de exibição, o projeto terá erros de compilação.

Se você renomear um objeto de banco de dados quando você tiver erros de compilação em seu projeto, o objeto ainda pode ser renomeado corretamente.No entanto, talvez não seja possível corretamente atualização todas as referências para o objeto que você está renomeando.Se houver erros de compilação no seu projeto, você será avisado sobre o Visualizar alterações caixa de diálogo.Se você continuar, o objeto é renomeado e referências são atualizadas sempre que possível.Se você cancelar a operação, você pode corrigir os erros de compilação primeiro e tente novamente a operação de renomeação.

The Visualizar alteraçõescaixa de diálogo exibe avisos para o seguinte:

  • Construir erros no projeto do banco de dados

  • Erros de sintaxe em scripts e testes de unidade

  • Planos de geração de dados malformado

Efeitos sobre planos de geração de dados

Quando você renomear um objeto de banco de dados em Team Edition for Database Professionals, é feita uma tentativa atualização planos de geração de dados que se referem a esse objeto. No entanto, você deve considerar o seguinte:

  • Antes de você pode renomear um objeto, você deve salvar planos de geração de dados que estão em aberto no editor.Se houver planos de geração de dados em aberto quando você tenta renomear um objeto, você deverá primeiro salvar os planos.Se você continuar, todos em aberto planos de geração de dados são salvos e fechados automaticamente e continua a operação de renomeação.Se você não continue, a operação de renomeação será cancelada.Todos os planos de geração de dados abertos foram deixados abertos e não são salvas.

  • Você deve manualmente atualização planos de geração de dados que usam dados acoplados geradores de dados.

Para obter mais informações, consulte Gerar dados com geradores de dados.

Efeitos em testes de unidade

Instruções de Transact-SQL (T-SQL) em um teste de unidade geral se referem os objetos no banco de dados especificados em ValidationConnectionString e ExecutionConnectionString do teste de unidade.A seguir estão duas possibilidades quando isso não for o caso:

  • Instruções T-SQL em um teste de unidade podem se referir a objetos em outros bancos de dados.

  • Instruções T-SQL em um teste de unidade podem se referir a objetos no mesmo banco de dados, mas em diferentes esquemas (SQL Server 2005).

Quando você renomear um objeto de banco de dados em Database Edition, é feita uma tentativa atualização testa a unidade na solução que se referem a esse objeto. Nos casos mencionados anteriormente, talvez não seja possível atualização os testes de unidade.Para atualização testes de unidade quando você renomeia um banco de dados objeto, você deve certificar-se de que você usa o nome totalmente qualificado de objetos em seus testes de unidade.Se você usar nomes totalmente qualificados em seus testes de unidade, o mecanismo de refatoração poderá atualizá-los sempre que você renomeia um objeto de esquema.

Para obter mais informações sobre testes de unidade, consulte Visão geral do teste de unidade de banco de dados.

Efeitos em Scripts T-SQL

Scripts T-SQL em um projeto de banco de dados consultem geralmente os objetos de esquema no banco de dados do projeto de banco de dados.A seguir estão duas possibilidades quando isso não for o caso:

  • Instruções T-SQL em um script podem se referir a objetos em outros bancos de dados.

  • Instruções T-SQL em um script podem se referir a objetos no mesmo banco de dados, mas em diferentes esquemas (SQL Server 2005).

Quando você renomear um objeto de banco de dados em Database Edition, é feita uma tentativa atualização scripts na solução que se referem a esse objeto. Nos casos mencionados anteriormente, talvez não seja possível atualização os scripts.Para atualização scripts quando você renomeia um banco de dados objeto, você deve certificar-se de que você usa o nome totalmente qualificado de objetos em seus scripts.Se você usar nomes totalmente qualificados em seus scripts, o mecanismo de refatoração poderá atualizá-los sempre que você renomeia um objeto de esquema.

Para obter mais informações sobre scripts, consulte Trabalhando com scripts de banco de dados.

Segurança

Se um erro impedir que uma operação de refatoração de concluir, as informações sobre o erro são gravadas no log de eventos do aplicativo, em que qualquer usuário que tenha permissões de "Usuário normal" pode exibi-lo.Se suas informações de esquema serão consideradas confidenciais e podem aparecer no log do, convém desmarcar o log ou restringir o acesso ao computador cliente.

Consulte também

Conceitos

Visão geral da terminologia do banco de dados edição

Outros recursos

Renomear objetos de banco de dados

Visão geral de refatoração Renomear