Partilhar via


Protegendo dados durante uma operação de renomear

Quando você renomear um objeto de banco de dados e, em seguida, compilação o projeto de banco de dados, um script de implantação é gerado que reflete essa alterar.Quando você renomeia uma coluna ou tabela, o script descarta a coluna original ou a tabela com 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 são perdidos.

Você pode controlar se a coluna original ou a tabela é descartada, definindo a opção apropriada nas propriedades do projeto.The Compilação guia das propriedades do projeto de contiver uma caixa de seleção chamado 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.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.

Usando sp_rename

Você pode edição manualmente o script de construção para converter as coluna e tabela drop/adicionar sp_rename.

Por exemplo, você pode especificar as seguintes informações para uma tabela:

sp_rename '<OLD TABLE NAME>', '<NEW TABLE NAME>', 'OBJECT'

Por exemplo, você pode especificar as seguintes informações para uma coluna:

sp_rename '<TABLE NAME>.<OLD COLUMN NAME>', '<NEW COLUMN NAME>', 'COLUMN'

Para obter mais informações, consulte Como: Implantar alterações de refatoração de banco de dados.

Movendo dados entre os objetos antigos e novos

Para evitar uma possível perda de dados que o drop demonstrativo pode causar, você pode optar por não implantar o drop demonstrativo. Você terá cópias do objeto antigo e novo objeto no banco de dados de destino.Você pode mover os dados do objeto antigo para o novo objeto e depois solte o objeto antigo.Você pode executar essa tarefa usando um dos seguintes métodos:

  • Use um select demonstrativo ou Outros demonstrativo T-SQL para mover os dados manualmente.

    Por exemplo, você pode especificar as seguintes informações para uma tabela:

    -- Deploy table add only.
    
    -- Move the data between the old and new tables.
    INSERT Region_New SELECT * FROM Region_Old
    
    -- Drop the old table manually.
    DROP TABLE Region_Old
    

    Por exemplo, você pode especificar as seguintes informações para uma coluna:

    -- Deploy column add only.
    
    -- Move the data between the old and new columns.
    UPDATE Region SET ColumnNew = ColumnOld
    
    -- Drop the old column manually.
    ALTER TABLE Region DROP COLUMN ColumnOld
    
  • Use o utilitário bcp, Data transformação Services (SQL 2000) ou SQL servidor Integration Services (SQL 2005) para mover os dados automaticamente.

Movendo dados usando o armazenamento temporário

Para evitar uma possível perda de dados que o drop pode fazer com que uma demonstrativo, você pode mover os dados ao armazenamento temporário. Antes de implantar a alterar, mova os dados da tabela antiga para um local temporário.Por exemplo, você poderia mova os dados para uma tabela em um banco de dados diferente ou para um arquivo de dados.Em seguida, implante o drop e o add instruções. Finalmente, você mova os dados do local temporário para a nova tabela.Você pode executar essa tarefa usando um dos seguintes métodos:

  • Use um select into ou Outros demonstrativo T-SQL, para mover os dados manualmente.

    Por exemplo, você pode especificar as seguintes informações para uma tabela:

    -- Move the data to temporary storage.
    SELECT * INTO TemporaryStorage.dbo.Region_Storage FROM Region_Old
    
    -- Deploy table drop/add.
    
    -- Move the data to the new table.
    INSERT Region_New SELECT * FROM TemporaryStorage.dbo.Region_Storage
    

    Por exemplo, você pode especificar as seguintes informações para uma coluna:

    -- Move the data to temporary storage.
    SELECT * INTO TemporaryStorage.dbo.Region_Storage FROM Region
    
    -- Deploy column drop/add.
    
    -- Move the data to the new column.
    UPDATE Region SET ColumnNew = rs.ColumnOld FROM Region r JOIN TemporaryStorage.dbo.Region_Storage rs ON r.RegionID = rs.RegionID
    
  • Use o utilitário bcp, Data transformação Services (SQL 2000) ou SQL servidor Integration Services (SQL 2005) para mover os dados automaticamente.

Consulte também

Tarefas

Como: Perda de dados de controle durante a implantação de bancos de dados existentes

Outros recursos

Renomear objetos de banco de dados

Visão geral de refatoração Renomear

Implantação de refatoração Changes to a banco de dados

Criando e implantando esquemas do banco de dados