Artigo: 325335 - Última revisão: quinta-feira, 16 de Agosto de 2007 - Revisão: 5.2

Como transferir uma base de dados de um agrupamento para outro agrupamento em SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo define o agrupamento e descreve como transferir uma base de dados de um agrupamento no Microsoft SQL Server para outro agrupamento em SQL Server. Os mesmos conceitos e debates sobre o SQL Server 2000 também se aplicam ao SQL Server 2005.

O que é agrupamento?

Uma collation Especifica os padrões de bit que representam cada carácter. Também especifica as regras que são utilizadas para ordenar e comparar os caracteres. Um agrupamento tem as seguintes características:
  • Idioma
  • Sensibilidade de maiúsculas e minúsculas
  • Sensibilidade de destaque
  • Sensibilidade de kana
Para saber o agrupamento está a utilizar um servidor, pode executar o procedimento de sistema sp_helpsort no SQL Query Analyzer.

SQL Server 7.0 não suporta bases de dados que têm vários agrupamentos. Por conseguinte, todas as bases de dados criadas no SQL Server 7.0 utilizar agrupamento predefinido. SQL Server 2000 suporta múltiplos agrupamentos. Bases de dados do SQL Server 2000 podem ter agrupamentos diferente agrupamento predefinido. Além disso, o SQL Server 2000 também suporta colunas que têm agrupamentos diferente as collations das bases de dados onde foram criadas.

Quando utilizar a utilizar agrupamento opção no DTS

SQL Server 2000 pode ter várias bases de dados ou colunas que têm agrupamentos diferente agrupamento predefinido. Deste modo, uma nova opção com o nome Utilizar agrupamento é introduzida em dados Transformation Services (DTS). O comportamento da opção Utilizar agrupamento é determinado pelo tipo de transferência que estiver a efectuar. Se transferir dados entre duas instâncias do SQL Server 2000 e activar a opção Utilizar agrupamento , os dados são convertidos da página de código de origem para a página de código de destino. Se não activar a opção de agrupamento de utilização e as páginas de código são iguais em ambas as instâncias do SQL Server 2000, ocorre uma transferência de dados directa. Se as páginas de código forem diferentes, os dados da página de código de origem são convertidos para a página de código de destino. No entanto, a conversão poderá não estar correcta quando transferir os dados.

Nota O agrupamento é importante se a collation é utilizada para os dados propriamente dito e se uma coluna utiliza a cláusula COLLATE. A opção Utilizar agrupamento determina se uma conversão de páginas de código ocorre quando os dados são transferidos de um agrupamento para outro agrupamento. Não afecta a opção de Agrupamento de utilizar se o COLLATE propriedade de uma definição de coluna está definida. Por conseguinte, se uma tabela de origem contiver uma coluna que foi criada com um agrupamento específico utilizando a cláusula COLLATE, que agrupamento persistir quando os dados são transferidos, independentemente se o Utilizar Adicionar opção está activada no Assistente de serviços de transformação de dados.

Métodos de transferência não alteram a collation da base de dados

Os seguintes métodos não alteram a collation da base de dados:
  • Cópia de segurança e restaurar: restaurar a base de um dados num servidor que tenha um agrupamento diferente do que o servidor que é utilizado para a cópia de segurança não converte a base de dados restaurada para o novo agrupamento. A collation da base de dados permanece tal como está.
  • Desligar e voltar a ligar: Se desanexar uma base de dados que foi criado com um agrupamento e volte a ligar a base de dados noutro servidor que tenha um agrupamento diferente, não altera a collation da base de dados. A collation da base de dados permanece tal como está.
  • Assistente de base de dados de cópia: O Assistente de base de dados de cópia essencialmente automatiza o processo de desligar e reattaching. A collation da base de dados permanece tal como está.

    Nota O Assistente para copiar banco de dados está disponível no SQL Server 2000. No entanto, o Assistente para copiar banco de dados não está disponível no SQL Server 7.0.

Transferir uma base de dados de um agrupamento em SQL Server 7.0 para um agrupamento diferente no SQL Server 7.0

Para alterar a collation da base de dados entre dois computadores que executem o SQL Server 7.0, tem de criar a base de dados de utilizador e todos os objectos no servidor de destino e, em seguida, transferir os dados utilizando DTS ou o utilitário bcp.

Para transferir uma base de dados de um computador com o SQL Server 7.0 num computador com o SQL Server 7.0 e que tem um agrupamento diferente, siga estes passos:
  1. Cópia de segurança da base de dados origem.
  2. Utilizar SQL Server Enterprise Manager para criar scripts para todos os objectos na base de dados origem.
  3. Para exportar os dados de todas as tabelas na base de dados, utilize DTS ou o utilitário bcp.
  4. Crie uma nova base de dados no servidor de destino utilizando o SQL Server Enterprise Manager ou a instrução CREATE DATABASE.

    Nota Quando utiliza a instrução CREATE DATABASE, a base de dados terá o mesmo agrupamento que o computador com o SQL Server 7.0.
  5. Utilizar SQL Query Analyzer para executar os scripts que criou no passo 2 para recriar todos os objectos da base de dados de destino.

    Nota As tabelas e as colunas terão o mesmo agrupamento que o computador com o SQL Server 7.0.
  6. Importe os dados nas tabelas de destino utilizando DTS ou o utilitário bcp.

Transferir uma base de dados de um agrupamento em SQL Server 7.0 para um agrupamento no SQL Server 2000

Para alterar a collation da base de dados entre o SQL Server 7.0 e SQL Server 2000, terá de criar a base de dados, as colunas ou ambos com o agrupamento adequado no servidor de destino antes de transferir os dados. No entanto, pode utilizar DTS para abandonar e, em seguida, recriar os objectos quando transferir dados de SQL Server 7.0 para o SQL Server 2000. Quando o fizer, terá de activar a opção Utilizar agrupamento DTS.

Nota Não utilize o utilitário DTS incluída no SQL Server 7.0 para transferir todos os objectos de ou para um computador com o SQL Server 2000. Tem de utilizar o utilitário DTS incluída no SQL Server 2000 quando tiver de transferir dados entre o SQL Server 7.0 e SQL Server 2000.

Para transferir uma base de dados de um agrupamento em SQL Server 7.0 para um agrupamento no SQL Server 2000, siga estes passos:
  1. Cópia de segurança da base de dados origem.
  2. Utilizar SQL Server Enterprise Manager para criar scripts para todos os objectos na base de dados origem.
  3. Se as colunas de um agrupamento diferente do que o agrupamento predefinido na base de dados de destino, efectue as alterações necessárias de agrupamento para as colunas adequadas nos scripts.
  4. Crie uma nova base de dados no servidor de destino com o agrupamento adequado.
  5. Utilizar SQL Query Analyzer para executar os scripts que criou no passo 2 no servidor de destino para recriar todos os objectos na base de dados.

    Nota As novas tabelas e colunas têm o mesmo agrupamentos da base de dados a menos que especifique um agrupamento diferente para as colunas.
  6. Utilize DTS ou o utilitário bcp para transferir os dados.

    Nota Se utilizar DTS, verifique o seguinte:
    • Certifique-se de que o Agrupamento de utilização está activada quando transferir dados de SQL Server 7.0 para o SQL Server 2000.
    • Uma vez que os objectos já são criados no servidor de destino com o agrupamento adequado, desactive a opção Criar destino objectos primeiro .

Transferir uma base de dados de um agrupamento no SQL Server 2000 para um agrupamento diferente no SQL Server 2000

Para transferir uma base de dados de um agrupamento no SQL Server 2000 para um agrupamento diferente no SQL Server 2000, siga estes passos:
  1. Cópia de segurança da base de dados origem.
  2. Nota Se as colunas a utilizar a cláusula COLLATE.
  3. Crie uma nova base de dados no servidor de destino com o agrupamento adequado.
  4. Se não existem colunas utilizam a cláusula COLLATE, utilize DTS para transferir os dados para o servidor de destino. Para tal, Active a opção Utilizar agrupamento para conversão de páginas de código e para transferir os dados para o novo agrupamento na base de dados de destino. Se as colunas a utilizar o COLLATE cláusula, siga estes passos:
    1. Gera scripts para todos os objectos (não incluindo os índices, os accionadores, as chaves primárias, chaves externas, as predefinições e as restrições de acesso). Além disso, certifique-se de que activa a opção apenas scripts 7.0 funcionalidades compatível remover a cláusula COLLATE do script.

      Nota Quando utiliza a opção apenas scripts 7.0 compatível funcionalidades , pode alterar a collation. No entanto, quaisquer novas opções de SQL Server 2000 (incluindo funções definidas pelo utilizador, propriedades alargadas, INSTEAD OF accionador e índices de vistas) irão não ser consideradas quando os scripts são gerados.
    2. Execute os scripts a partir do passo na base de dados de destino para criar os objectos com a collation da base de dados de destino.
    3. Utilize DTS para transferir apenas os dados da base de dados de origem.
    4. Depois dos dados são transferidos com êxito, gerar scripts para todas as restrições, chaves externas, chaves primárias e índices da base de dados de origem.

      Nota No separador formatação da caixa de diálogo Gerar Scripts de SQL , clique para desmarcar as caixas de verificação seguintes:
      • comando Gerar CREATE <object> para cada objecto
      • comando Gerar DROP <object> para cada objecto
    5. Execute os scripts a partir do passo d na base de dados de destino.

Alterar a collation da base de dados principal

Se pretender alterar a collation da base de dados principal , tem de reconstruir a base de dados principal . Quando reconstruir a base de dados principal , essencialmente cria uma nova base de dados principal . Por conseguinte, considere os seguintes itens antes de reconstruir a base de dados principal :
  • Certifique-se efectuar uma cópia de segurança válida da actual base de dados principal . Quando reconstruir a base de dados principal , a base de dados msdb e a base de dados modelo também são recriados. Uma por este motivo, deve cópia de segurança a base de dados msdb e a base de dados modelo antes de reconstruir a base de dados principal . A base de dados msdb é a base de dados sistema que é utilizado para armazenar o SQL Server trabalhos, alertas, operadores e pacotes DTS. A base de dados modelo é a base de dados modelo que é utilizada quando cria uma nova base de dados.
  • Uma vez que reconstruir a base de dados principal cria uma nova base de dados principal , tem de introduzir as informações de início de sessão existentes depois de reconstruir a base de dados principal . Por conseguinte, tem de exportar as informações de início de sessão antes de reconstruir a base de dados principal . Depois de o recriar a base de dados principal , importe as informações de início de sessão.Para obter mais informações sobre como exportar informações de início de sessão, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    246133  (http://support.microsoft.com/kb/246133/ ) Como transferir os inícios de sessão e palavras-passe entre instâncias do SQL Server
  • Uma vez que a base de dados msdb é reconstruída quando reconstruir a base de dados principal , deverá gerar scripts para todas as tarefas, alertas e operadores antes de reconstruir a base de dados principal . Além disso, tem Certifique-se que mova DTS todos os pacotes. Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
    314546  (http://support.microsoft.com/kb/314546/ ) Como mover bases de dados entre computadores com o SQL Server
  • Uma vez que a base de dados modelo é reconstruída quando reconstruir a base de dados principal , quaisquer alterações efectuadas anteriormente na base de dados do modelo tem de ser indicadas, script ou exportadas antes de reconstruir a base de dados principal . Depois da base de dados modelo é reconstruído, aplique novamente quaisquer alterações anotadas.

Alterar a collation da base de dados principal no SQL Server 2000

Antes de alterar a collation da base de dados principal , siga estes passos:
  1. Quando reconstruir a base de dados principal, todas as bases de dados criadas antes da base de dados for reconstruída não automaticamente recuperar. Por conseguinte, tem de ser restaurados todas as bases de dados a partir de uma cópia de segurança ou se os ficheiros estiverem ainda no disco, pode anexá as bases de dados utilizando o procedimento armazenado do sistema de sp_attach_db . Certifique-se que tem todas as informações necessárias para voltar a ligar as bases de dados existentes antes de reconstruir a base de dados principal . Para mais informações sobre o procedimento armazenado do sistema de sp_attach_db , visite o seguinte site da Web MSDN:
    http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa259611(SQL.80).aspx)
  2. Quando reconstruir a base de dados principal , apenas a collation da base de dados principal , a base de dados modelo e a base de dados msdb é alterada. O agrupamento de bases de dados de utilizador não é alterado. Para alterar o agrupamento de uma base de dados de utilizador existente ou para criar uma nova base de dados com o agrupamento adequado, utilize o comando ALTER DATABASE e, em seguida, utilizar DTS ou o utilitário bcp para transferir os dados para a nova base de dados.

    Nota Se utilizar o comando ALTER DATABASE no SQL Server 2000 para alterar a collation de uma base de dados, o agrupamento das colunas nas tabelas não é alterado automaticamente. Para alterar o agrupamento das colunas, utilize o comando ALTER TABLE e comandos ALTER COLUMN. Se estiver a utilizar DTS, é possível criar a tabela e as colunas com o agrupamento adequado antes de transferir os dados ou pode utilizar a opção de Utilizar o agrupamento . Se estiver a utilizar DTS e a tabela com a collation adequada já existe, certifique-se desactivar a opção Largar existente objectos primeiro antes de executar o pacote.

Alterar a collation da base de dados principal no SQL Server 7.0

Antes de alterar a collation da base de dados principal , siga estes passos:
  1. SQL Server 7.0 não é suportado com bases de dados com agrupamentos diferente agrupamento predefinido. Por este motivo, antes de reconstruir a base de dados principal , exporte todos os dados de bases de dados de utilizador.
  2. Gerar scripts para todos os objectos na base de dados.
  3. Recrie a base de dados principal com o agrupamento adequado.
  4. Crie bases de dados novas. As novas bases de dados são criados automaticamente com o novo agrupamento predefinido.
  5. Executar scripts guardados anteriormente para recriar os objectos e, em seguida, importe os dados anteriormente exportados.

Referências

Para obter mais informações acerca de collations, visite os seguintes Web sites da Microsoft:

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL 2005 Server Workgroup
Palavras-chave: 
kbmt kbhowtomaster KB325335 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 325335  (http://support.microsoft.com/kb/325335/en-us/ )