¿Cómo volcar una base de datos de Microsoft SQL Server en un script SQL?

125

¿Hay alguna forma de exportar una base de datos de Microsoft SQL Server a un script sql?

Estoy buscando algo que se comporte de manera similar a mysqldump, tomando un nombre de base de datos y produciendo un solo script que recreará todas las tablas, procedimientos almacenados, reinserte todos los datos, etc.

He visto http://vyaskn.tripod.com/code.htm#inserts , pero idealmente quiero algo para recrear todo (no solo los datos) que funciona en un solo paso para producir el guión final.

Matt Sheppard
fuente
@ Matt Sí, no exporta los datos. Es por eso que mencioné que deberías combinarlo con el script que sugeriste. Sin embargo, este método crea un script en el orden correcto.
Julio César
En realidad, en Mangement Studio 2008, solo tiene que activar la opción "exportar datos", y el script contendrá tanto el esquema como las instrucciones de inserción.
user24161
@MattSheppard por favor considere aceptar una de las respuestas
030

Respuestas:

111

En SQL Server Management Studio, haga clic con el botón derecho en su base de datos y seleccione Tareas / Generar secuencias de comandos. Siga al asistente y obtendrá un script que recrea la estructura de datos en el orden correcto según las claves externas. En el paso del asistente titulado "Establecer opciones de secuencia de comandos", elija "Avanzado" y modifique la opción "Tipos de datos a secuencia de comandos" a "Esquema y datos"

SUGERENCIA: en el paso final, seleccione "Script a una nueva ventana de consulta", funcionará mucho más rápido de esa manera.

Julio Cesar
fuente
18
Solo recuerde ir a las opciones avanzadas y dígale que escriba no solo el esquema, sino también los datos.
RomanSt
2
¡@romkyns merece todos los votos positivos! "Tipos de datos para script" es el nombre exacto de la opción. Deberá seleccionar "Esquema y datos".
solidau
2
El principal problema con los scripts generados a partir de SSMS es que no están ordenados correctamente para tener en cuenta las dependencias. Esto no es un problema para bases de datos pequeñas donde puede hacer esto manualmente, pero definitivamente es un problema cuando la base de datos supera los 50 objetos. Hasta ahora hemos utilizado con éxito ApexSQL Script para esto. Es una herramienta premium, pero puede usarla en modo de prueba para hacer el trabajo. Creo que Red Gate también tiene una herramienta similar.
David Smithers
34

Pruebe el Asistente de publicación de bases de datos del servidor SQL . Es posible que deba volver a ordenar el script para que se ejecute de una sola vez debido a las dependencias, pero incluirá su esquema y datos.

Si no tiene instalados los objetos 2005 SQL XMO, recibirá un error cuando ejecute el asistente . Querrá la Colección de objetos de administración de Microsoft SQL Server 2005

Rob Allen
fuente
55
En realidad, no necesita reordenar el script, ya que elimina todas las restricciones, crea el esquema, inserta los datos y, finalmente, recrea las restricciones.
Daniel Silveira
Impresionante, eso es bastante bueno
Beep beep
Esta es una gran herramienta, aunque solo es compatible con SQL Server 2015. ¿Qué tal 2008 y posteriores?
Nam G VU
12

Encontré SQL Dumper bastante útil. Es gratis, así que puedes probarlo. Le permite elegir las tablas y columnas de la base de datos, las vistas e incluso los resultados de consultas personalizadas como declaraciones de inserción SQL.

Marc Climent
fuente
La última versión estable no funciona con procedimientos almacenados.
VMAtm
1
La última versión se puede descargar desde download.cnet.com/SQL-Dumper/3000-10254_4-10514574.html
Raynet
7

Al no encontrar la herramienta adecuada, decidí crear la mía propia: una utilidad de línea de comandos sqlserverdump. Compruébelo en http://sqlserverdump.codeplex.com/ . Volverá a crear esquemas y datos en un solo paso.

Daniel
fuente
6

Prueba DBSourceTools . Está diseñado para crear un script de una base de datos de origen y volver a implementarlo en una base de datos de destino. Scripts de esquema y datos.


fuente
6

La solución recomendada solo funciona en SQL 2000 y 2005. Si está buscando hacer esto en SQL 2008,

Puede hacerlo con SQL 2008 sin ningún otro complemento. Haga clic derecho en la base de datos y seleccione "Tareas -> Generar secuencias de comandos ...". Seleccione la base de datos y lo que desea respaldar. Haga clic en Siguiente y establezca "Datos de script" en verdadero.

Documentación adicional en el enlace:

http://blog.sqlauthority.com/2011/05/07/sql-server-2008-2008-r2-create-script-to-copy-database-schema-and-all-the-objects-data-schema- procedimiento-almacenado-funciones-disparadores-tablas-vistas-restricciones-y-todos-otros-objetos-bases de datos /

tzerb
fuente
2

El Asistente de publicación de bases de datos de SQL Server parece ser la mejor manera de hacerlo. El problema con esto es que no parece ejecutarse en Windows 7. Tuve que usar mi computadora vieja para usarlo. En el lado positivo, funciona con versiones anteriores de SQL Server como 2000.

Para versiones más recientes de SQL y sistemas operativos, vale la pena analizar este software: http://sqlbackupandftp.com/


fuente
0

Ombelt es una buena herramienta para exportar bases de datos del servidor MS SQL. www.ombelt.com

muy parecido a otras instalaciones de descarga de DB.

Funciona para mi.

Tim Williscroft
fuente
0

Verifique el proyecto de volcado de esquema de Microsoft SQL Server ( mssql-schema-dumpherramienta en GitHub ).

Uso: mssqldump -h data-source-host -u username -p password [-d path/for/files] [-c] [-s] [-a] [-b DB1[,DB2[,DB3]]]

La exportación admite:

  • DB: esquema, tipos de usuario, tipos de tabla de usuario, activadores, catálogos de texto completo, listas de detención de texto completo, procedimientos almacenados, funciones
  • DB.Tables: esquema, disparadores, índices, DRI, estadísticas
  • DB.Views: esquema, disparadores, índices, DRI, estadísticas
kenorb
fuente