SQL Server 2000 a SQL Server 2008: ¿es posible restaurar una base de datos de 2000 a un esquema de 2008?

Digamos que tenemos dos bases de datos de SQL Server 2000:

           PARTS
           CUSTOMERS

¿Se pueden restaurar en SQL Server 2008 en una base de datos combinada pero separada mediante esquemas, de modo que haya un esquema de PIEZAS y un esquema de CLIENTES? ¿Se puede restaurar una base de datos de 2000 "en un esquema de 2008"?

preguntado el 02 de mayo de 12 a las 19:05

3 Respuestas

No puede restaurar dos bases de datos en una sola base de datos. Deberá restaurar cada base de datos individualmente y luego combinarlas manualmente. O bien, puede crear una secuencia de comandos T-SQL de cada base de datos, combinar las dos secuencias de comandos adecuadamente y luego ejecutar la secuencia de comandos.

contestado el 02 de mayo de 12 a las 19:05

Pero usted puede obtener los datos antiguos de una copia de seguridad de MSSQL 2000. Una vez que tenga los datos en su entorno MSSQL 2008, existen muchas técnicas para fusionar los datos. La copia de seguridad en sí es no un problema. "Fusión" is un problema, independientemente de dónde provengan los datos. - paulsm4

He estado programando en SQL Server 2000 pero trabajé durante algunos años con Oracle (ORA es mi única experiencia con Schemas). En Oracle, el esquema posee el asegurable (también conocido como objeto de base de datos), por lo que sería posible, siguiendo mi ejemplo anterior, tener objetos PARTSSCHEMA.FOO y CUSTOMERSSCHEMA.FOO en la misma base de datos. Así que esperaba que fuera simplemente posible restaurar la base de datos SQL 2K de tal manera que el esquema de destino reclamara la propiedad de los elementos asegurables durante la restauración, ahorrándome la molestia de tener que "fusionar" los objetos manualmente. - Tim

No creo que pueda lograr lo que busca sin manipular la base de datos restaurada en la instancia de 2008 aprovechando los esquemas.

Cuando haga una copia de seguridad de la base de datos de origen (en su caso, dos), está contenida, se restaurará tal como está en el destino, ese es el punto principal, evite cualquier discrepancia entre las copias. Por lo tanto, por definición, no debería permitirle tener un resultado de restauración que sea estructuralmente diferente a la base de datos respaldada.

Una forma de lograr esto sería manejar primero el proceso de copia de seguridad/restauración y luego escribir un script que tome las bases de datos restauradas y las combine con la estructura real que desea tener.

Espero que esto haya sido útil.

contestado el 02 de mayo de 12 a las 19:05

Correcto: "No creo que pueda lograr lo que busca sin manipular la base de datos restaurada en la instancia de 2008 aprovechando los esquemas". Restaurar la base de datos no es un problema. Combinando (la forma en que el OP quiere) requerirá un poco de trabajo. Y el tema tiene nada que ver con MSSQL 2000 vs MSSQL 2008. En mi humilde opinión... - paulsm4

de acuerdo, aunque cuanto más lo pienso, tal vez la combinación de secuencias de comandos, si bien es sencilla, no podrá evitar copiar los objetos (costosos) del esquema restaurado al esquema separado. Puedo ver cómo tiene sentido lógicamente hacerlo, pero quizás el mejor enfoque aquí es usar DBNAME..TABLENAME para consultas y reemplazar otras ventajas del esquema por otros medios. - itayw

Lo que me gustaría hacer es restaurar bases de datos heredadas en una base de datos arbitraria (especificada) de 2008, de tal manera que los objetos que se restauran sean "reclamados" por un esquema designado. De esa manera, los objetos serían lógicamente distintos pero físicamente en la misma base de datos, por lo que podrían usarse restricciones de integridad referencial declarativa; en la base de datos heredada, RI tenía que aplicarse con los SP porque los objetos estaban en bases de datos diferentes. - Tim

P: ¿Es posible restaurar una base de datos de 2000 a un esquema de 2008?

R: Sí. Si tiene un archivo de copia de seguridad .bak, debería poder simplemente "restaurar".

Aquí hay un enlace de alguien que tuvo problemas para hacer una restauración similar y cómo se resolvieron:

Absolutamente puede hacer una "restauración con reemplazo".

Una vez que haya restaurado la antigua copia de seguridad de MSSQL 2000 (por ejemplo, en una base de datos temporal), puede hacer una "selección en" o lo que quiera copiar y/o fusionar los datos en una base de datos diferente (quizás con un esquema diferente).

En lo que respecta a los archivos de "copia de seguridad", hay relativamente pocos problemas con el uso de una copia de seguridad de MSSQL 2000 en un entorno de MSSQL 2008: la compatibilidad es bastante buena.

En mi humilde opinión ... PSM

contestado el 02 de mayo de 12 a las 20:05

No, no creo que esto sea correcto. Quiere restaurar una base de datos llamada PARTS donde las tablas y otros objetos se restauran en el esquema de otra base de datos. - Aarón Bertrand

Esto no es lo que está preguntando. Pregunta si se pueden restaurar dos bases de datos separadas en una base de datos combinada. - Randy Minder

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.