2009-02-13 20 views

Respuesta

35

No. No es posible restaurar una base de datos a partir de una copia de seguridad de una versión más reciente.

Si está empeñado en él, creo que su mejor opción es selet la base de datos en el Explorador de objetos en SQL 2008, botón derecho del ratón, seleccione Tareas de> Generar Scripts.In las opciones de diálogo sobre emable todo, incluidos los datos del script.

Y asegúrese de seleccionar "Script para SQL 2005".

Source

Al importar los objetos en el servidor de destino, si los objetos son grandes es posible que no se puede abrir el archivo a través de SQL Management Studio (con un completamente inútil "La operación no pudo se complete "error, no menos". Está bien, solo carga el archivo a través del sqlcmd.

+0

Tal vez, pero es verdad por mi experiencia con el servidor SQL (aunque eso solo abarca 2000-2008) –

+3

No me gustaría ser el administrador de productos de Microsoft que permitió que fuera posible. – dkretz

5

No, no directamente. Las copias de seguridad de la base de datos de SQL Server 2008 no son retrocompatibles con SQL Server 2005. Sin embargo, con SQL Server 2008 Management Studio, puede crear secuencias de comandos de datos y esquemas en el modo SQL Server 2005. Este article describe el proceso en detalle.

1

Puede usar DBSave, es una gran herramienta freeware para realizar copias de seguridad y restaurar ms sql server en diferentes máquinas. Es muy fácil de configurar y usar.

0

No, no puedes, pero herramientas como SQL de puerta roja Compara/Comparación de datos puede leer archivos de copia de seguridad directamente & transferencia de la información a través de una base de datos en vivo, se trata de cualquier sintaxis o ajustes que no son compatibles en SS2005

4

sí es posible

el uso de la exportación en el servidor SQL Server 2008. Ir a All Programs ->Microsoft SQL Server 2008 ->Import and Export Data

  • Entonces SQL Server Import AND Export Wizard se abrirá la ventana. Presione Next

  • Elija una fuente de datos (en su caso de SQL Server 2008). Elija un Destino (en su caso de SQL Server 2005).

  • Seleccionar Copy data from one or more tables or view

  • seleccionar tablas de la fuente y las tablas de destino

  • Haga clic Next & Finish

en completarse.

4

He tenido este problema durante mucho tiempo.

No puede restaurar copias de seguridad de SQL2008 en una instancia de SQL2005.

Y para mí, las soluciones como wizzard de importación/exportación o para crear una secuencia de comandos de la base de datos de SQL2008 utilizando las secuencias de comandos generar con la opción para SQL2005 no funcionarán. Porque, simplemente, mis bases de datos se cruzan entre sí dentro de sus vistas y procedimientos almacenados o udfs. No recaen en mi responsabilidad por completo y no puedo consolidarlos en 1 base de datos. Son un conjunto de 6 dbs que se refieren entre sí directamente dentro de sus vistas y procedimientos almacenados. Cuando los transfiero de una instancia de SQL2005 a otra, normalmente realizo una copia de seguridad/restauración completa.

Si tuviera que guiarlos, incluso con la opción con dependencias, obtendría errores en el momento de la recreación ya que db1 no encontraría vistas dentro de db3 porque sucedió que ejecuté el script create db1 primero. Si probé db3 primero obtengo excepciones similares.

La única manera de guionarlos para que no tenga tales excepciones de dependencia, es descubrir una secuencia que funcione y guiarlos parcialmente de esa manera: digamos: db1_tables seguido de db2_tables seguido de db2_views seguido de db1_views, sp, udfs, etc.

Tengo una secuencia. Y cuando necesito crear un nuevo conjunto de dichos 6 db, ejecuté los scripts parciales más pequeños en secuencia.

Esto explica por qué la generación de scripts, con dependencias y con datos y scripts de la versión de SQL2005, simplemente no funciona para mí.

El Wizzard importación/exportación es mejor en mi caso porque va a copiar las tablas a continuación, usted todavía tiene que la escritura de todas las vistas, sp, etc. udfs

Lo que realmente necesito es una herramienta de conversión de archivos de copia de seguridad SQL2008 , para convertirlos a formato SQL2005. Entonces mi problema desaparecerá. O algún tipo de herramienta que permitiría restaurar desde SQL2008 archivos de copia de seguridad completa, sin hacerme demasiadas preguntas.

Si alguien conoce estas herramientas y las ha usado, hágamelo saber.

0

No tuve suerte con Importar/Exportar (las exportaciones de archivos planos fallaron en importación reclamando problemas de mapeo de conjuntos de caracteres [aunque el mismo juego de caracteres se usó] y/o problemas de truncamiento [aunque el origen y el destino tenían exactamente la misma estructura]) y al no haber tenido suerte con el uso de la opción "generar scripts" suggested by Garry Shutler (generó un script con errores de sintaxis), estaba finalmente capaz de copiar la gran tabla que quería copiar de 2008 a 2005 usando SQL Server bcp utility. Esa es otra opción para esta situación, aunque para una base de datos completa sería tabla por tabla y probablemente no ayude con las vistas y tal.

Los pasos que utilizan:

  1. En el servidor de origen, utilice "Guión tabla como ... Crear" para obtener la estructura de gestión que en el servidor de destino.

  2. En el servidor de destino, cree un archivo de formato bcp utilizando su tabla recién creada:

    bcp database.owner.table format nul -f table.fmt -n

    (Si no está utilizando Windows autenticación, es posible que tenga los -U y -P opciones para especificar nombre de usuario y contraseña.)

  3. Copie ese archivo de formato en el servidor de origen (si es necesario).

  4. exportar los datos a presentar en el servidor de origen: (. Una vez más, posiblemente con -U y -P)

    bcp database.owner.table out table.dat -f table.fmt

  5. Copia el archivo de datos al servidor de destino (si es necesario)

  6. Importar los datos en el servidor de destino: (. Una vez más, posiblemente con -U y -P)

    bcp database.owner.table in table.dat -f table.fmt

Con la esperanza de que sea de utilidad para alguien más.

6

Falta una cosa importante en todas las respuestas y es el hecho de que Generar scripts en SSMS no ordena las secuencias de comandos correctamente.

Los scripts deben ordenarse en el orden de dependencia correcto para que las tablas secundarias se creen después de las tablas principales y demás.

Esto no es un problema para las pequeñas bases de datos, donde es fácil reordenar las secuencias de comandos de forma manual, pero puede ser un gran problema cuando se trata de bases de datos que tienen más de 100 objetos.

Mi experiencia es que es más conveniente usar herramientas de terceros que pueden leer copias de seguridad y generar scripts en el orden correcto. Estoy usando ApexSQL Diff y Data Diff de ApexSQL, pero no se puede equivocar con ningún proveedor popular.

Cuestiones relacionadas