2011-04-24 21 views
82

Tengo una base de datos SQL y tablas que me gustaría replicar en otro servidor SQL. Me gustaría crear un script SQL que cree la base de datos y las tablas en un solo script.Crear secuencia de comandos SQL que crea bases de datos y tablas

Puedo crear secuencias de comandos "Crear" usando SQL Management Studio para cada caso (Base de datos y tablas), pero me gustaría saber si sería suficiente combinar ambas secuencias de comandos "Crear" en una sola secuencia de comandos.

Gracias.

+21

¿podría cambiar la respuesta aceptada? – skolima

+1

@skolima estuvo de acuerdo, la respuesta aceptada (por Clayton) finalmente obtendrá el resultado, pero la respuesta de CJM es mucho más rápida – elmer007

Respuesta

3

En SQL Server Management Studio puede hacer clic derecho en la base de datos que desea replicar y seleccionar "Base de datos de script como" para que la herramienta cree el archivo SQL apropiado para replicar esa base de datos en otro servidor. Puede repetir este proceso para cada tabla que desee crear y luego combinar los archivos en un solo archivo SQL. No olvide agregar una declaración de uso después de crear su base de datos, pero antes de cualquier creación de tabla;)

+169

Seguir desplazándose ... El método de CJM es 99.99999% mejor – ewitkows

+3

@tony ¿Por qué elegir esto como respuesta? Esto es muy antiguo y como ewitkows dijo que el modo de CJM es correcto para las versiones actuales de SQL Server. – QMaster

+1

@tony elige la otra respuesta !! – JohnOsborne

-2

Sí, crear la base de datos, a continuación, crea las tablas, a continuación, insertar datos, todo en un guión. Hacerlo todo el tiempo

1

sí, se puede añadir tantas sentencias SQL en una única secuencia de comandos como desee. Solo una cosa para notar: el orden importa. No puede INSERTAR en una tabla hasta que lo CREA; no puede establecer una clave externa hasta que se inserte la clave principal.

341

Aunque la respuesta de Clayton lo llevará allí (eventualmente), en SQL2005/2008/R2/2012 tiene una opción mucho más sencilla opción:

Haga clic derecho en la base de datos, seleccione Tasks y luego Generate Scripts, lo que iniciará el Asistente de secuencias de comandos. Esto le permite generar una secuencia de comandos única que puede recrear la base de datos completa incluyendo table/indexes & constraints/stored procedures/functions/users/etc. Hay una multitud de opciones que puede configurar para personalizar el resultado, pero la mayoría se explica por sí mismo.

Si está satisfecho con las opciones predeterminadas, puede hacer todo el trabajo en cuestión de segundos.

Si desea recrear los datos en la base de datos (como una serie de INSERTS), también recomendaría SSMS Tools Pack (versión gratuita de SQL 2008, versión Paid for SQL 2012).

+5

Esto es excelente, acabo de hacer esto y me ahorró un montón de tiempo. –

+0

@CJM ¡Estoy pensando que casi te amo! :-P –

+0

Seguí exactamente esos pasos, pero sigo recibiendo toneladas de errores y no puedo corregirlos. ¿Alguna ayuda? – user1789573

6

No sé por qué SSMS no tiene en cuenta el orden de ejecución, pero simplemente no lo hace. Esto no es un problema para bases de datos pequeñas, pero ¿qué pasa si su base de datos tiene 200 objetos? En ese caso, el orden de ejecución sí importa porque no es realmente fácil pasar por todo esto.

Para los scripts no ordenadas generados por SSMS se puede ir siguiendo

a) Ejecutar guión (algunos objetos se insertará alguna costumbre, habrá algunos errores)

b) Eliminar todos los objetos de la secuencia de comandos que se han añadido a la base de datos

c) volver a a) hasta que todo esté finalmente ejecutado

opción alternativa es el uso de herramientas de terceros, como ApexSQL Script o cualquier otra herramienta que ya hombres en este hilo (paquete de herramientas SSMS, Red Gate y otros).

Todo esto se hará cargo de las dependencias para usted y ahorrar aún más tiempo.

8

una excelente explicación se puede encontrar aquí: Generate script in SQL Server Management Studio

Cortesía Ali IssaEsto es lo que tiene que hacer:

  1. Haga clic derecho en la base de datos (no la tabla) y seleccionar tareas - -> generar secuencias de comandos
  2. Siguiente -> seleccionar las tablas/tablas solicitadas (de seleccionar objetos específicos de la base de datos)
  3. Nex t -> haga clic en avanzado -> tipos de datos en script = esquema y datos

Si desea crear un script que genere las tablas (sin datos), puede omitir la parte avanzada de las instrucciones.

Cuestiones relacionadas