Detalhando : O SQL7 tinha o collation SQL_Latin1_General_CP1_CI_AS, já
o SQL2000 tem o collation Latin1_General_CI_AS. Então achei razoável
criar o Banco no SQL2000 com o seu default(Latin1_General_CI_AS). O
restore funcionou, mas acusou o erro acima. A segunda tentativa foi
excluir o Banco criado e criá-lo com o mesmo collation do SQL7,ou seja,
o SQL_Latin1_General_CP1_CI_AS. Após restore, o resultado da execu-
ção da sp foi o mesmo.
Obs.: Sei que se criar uma instância no SQL2000 com o collation do SQL7
o problema estará resolvido, mas não podemos alterar o ambiente.
Agradeceria se pudessem me ajudar,
Adalberto Andrade
Abs.
"Adalberto Andrade" <Adalbert...@discussions.microsoft.com> escreveu na
mensagem news:887C3C2C-97E5-4FDD...@microsoft.com...
Para evitar este tipo de problema vc deveria ter instalado o SQL Server 2000
utilizando o mesmo collate do SQL Server 7. O fato de vc ter criado o banco
com o collate do 2000 não resolveu porque ao voltar o restore do 7, o collate
mantido será o que está no banco restaurado. O problema é que mesmo que vc
altere o colalte para o banco (usando o ALTER DATABASE) o collate das colunas
do tipo char, vachar, etc... não serão alterados e vc cairá no mesmo problema
quando estiver fazendo JOINS entre colunas com collate diferente.
Bom, para resolver este problema de forma simples, o que vc pode estar
fazendo é instalar um SQL Server 2000 em qualquer máquina com o mesmo collate
já utilizado no SQL 7, restaurar sua base 7 para este SQL e depois executar o
procedimento do link abaixo para alterar o colalte default do servidor. Neste
caso altere o collate para o mesmo usado em produção do 2000.
http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=244
Depois faça um novo backup da base com o collate já convertido e restaure na
base de produção.
OBS: Utilizo este processo com bastante frequencia e é confiável !!
Qualquer coisa retorne.
PS: FOI ÚTIL PRA VOCÊ? Então ajude outras pessoas, marque-a como útil.
abraços
Nilton Pinheiro
www.mcdbabrasil.com.br
SQL 2005 Virtual Lab
http://msdn.microsoft.com/vstudio/tryit/hosted/sql
"Adalberto Andrade" escreveu:
Por acaso eu não sei te dizer se o erro é no tempdb, pois nenhuma
mensagem de erro apareceu no event viewer ou no log do SQL. Você po-
deria me dizer como identifico esse erro ?
Não sei se consegui ser suficientemente claro, como gostaria, mas
o cenário apresentado é a migração de um Database (SQL7) que está em
uma máquina "A" para uma instância (SQL2000) da máquina "B" que
já tem vários outros Bancos. Ambiente este que não posso mudar o
collation.
Então a pergunta é : Quando vc fala em alterar o collation do
msdb vc se refere a instância do SQL7 ? Para depois fazer um backup e
tornar a fazer o restore no SQL2000 ?
OBS.: Não sei se estou correto, mas o backup do SQL7 parece estar
herdando o collation da base, e aí na hora do restore no SQL2000 (que
tem outro collation) "mascara" a questão e sequer envia um warning.
Onde o problema só aparece qdo se roda alguma coisa que lê o Banco.
Infelizmente, o restore (do SQL2000) não tem nenhuma opção para
baixar um Banco com outro collation - diferente do original.
Obrigado pela ajuda,
Adalberto
OSs Banco
"Marcelo Colla" escreveu:
Compreendi. Pergunta : Um bcp (out) no SQL7 como extração e
um bcp (in) no SQL2000 como carga seria uma saída ? O que pensa ?
O inconveniente seria a execução de tais bcp's para todas as tabelas.
Obrigado pela ajuda,
Adalberto
"Nilton Pinheiro" escreveu:
Tanto o BCP quanto o DTS ou o processo que lhe passei resolvem seu problema.