Recuperara una Base de Datos de un SQL 7 a un 2000 da problemas de collation

08/09/2005 - 14:53 por Manel Gonzalez | Informe spam
Hola a Todos

Hemos decidido comprar un nuevo servidor para el sql y de paso, actualizar
el S.O y el propio SQL. Hasta ahora lo teniamos en un NT.4 con Sql 7.0 y lo
queremos poner en un Server 2003 (SP1) con SQL 2000 (SP4) (hemos comprado la
licencia de 2005, pero hasta que no salga un service pack ni en broma lo
ponemos!!!)

El SQL 7 lo tenia instalado con las siguientes opciones:
== OPCIONES SQL7
Unicode data sorting
-
Locale ID = 1034

case insensitive, accent insensitive, kana type insensitive, width
insensitive


Sort Order Description
-
Character Set = 2, cp850
Code Page 850 (Multilingual) character set.
Sort Order = 42, nocase_850
Case-insensitive dictionary sort order for use with several We
stern-European languages including English, French, and German
. Uses the Code Page 850 character set.
== FIN OPCIONES SQL7

y por otra parte el sql2000 lo he instalado de la siguiente manera,
ajustandome lo más posible a la instalación del SQL7:
Traditional-Spanish, case-insensitive, accent-insensitive,
kanatype-insensitive, width-insensitive


Luego he creado los logins, preservando el sid, para no tener problemas de
permisos al pasar jobs, pakages...

El problema viene que cuando restauro las Bd's, me quedan todos los campos
que adminten COLLATE (char, varchar,..) en Compatibility_42_40a_30003,
mientras que las bases de datos del sistema estan en
SQL_Latin1_General_Cp850_CI_AI. De esta manera cuando ejecuto alguno de los
procedimientos que van contra tablas del sistema (sysusers, sysproceses,...)
da un error "Cannot resolve collation conflict for equal to operation".

Lo bueno del caso es que no me deja cambiar el collate de los campos de las
tablas, pq me dice que es un "Invalid Collation"

Tambien he realizado un ALTER DATABASE sobre las bases de datos para cambiar
el collate al que quiero, pero solo me vale para las tablas nuevas, las que
ya hay las sigue dejando en Compatibility_42_40a_30003

¿Hago algo mal? ¿Existe otra manera de migrar los datos? ¿Quizas hay que
hacerlo con transferir objetos entre servidores? Toda la documentación que
miro está suponiendo que intalo SQL2000 sobre una instalación previa de
SQL7, y este no es el caso

PD: ya imagino que modificando los procedimientos con "CAST(xxxxx as yyyyy)
COLATE SQL_Latin1_General_Cp850_CI_AI" allí donde toque ya saldría del paso,
pero espero encontrar una solución mejor
 

Leer las respuestas

#1 Isaias
08/09/2005 - 17:07 | Informe spam
Pasa tus LOGINS con un DTS y los objetos (tablas, vistas, etc.) de la misma
forma.

Preguntas similares