Tengo una base de datos SQL y tablas que me gustaría replicar en otro SQL Server. Me gustaría crear un script SQL que cree la base de datos y las tablas en un solo script.
Puedo crear un script "Create" usando SQL Management Studio para cada caso (base de datos y tablas), pero me gustaría saber si combinar los dos scripts "Create" en un solo script sería suficiente.
Gracias.
sql
sql-server
Tony
fuente
fuente
Respuestas:
En SQL Server Management Studio, puede hacer clic con el botón derecho en la base de datos que desea replicar y seleccionar "Script Database as" 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 fusionar 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 la creación de cualquier tabla.
En versiones más recientes de SQL Server, puede obtener esto en un archivo en SSMS.
Esto iniciará un asistente donde puede crear un script para toda la base de datos o solo porciones. No parece haber una forma T-SQL de hacer esto.
fuente
Aunque la respuesta de Clayton lo llevará allí (eventualmente), en SQL2005 / 2008 / R2 / 2012 tiene una opción mucho más fácil:
Haga clic con el botón derecho en la base de datos, seleccione
Tasks
y luegoGenerate Scripts
, que iniciará el Asistente de secuencia de comandos. Esto le permite generar un único script que puede recrear la base de datos completa, incluida la tabla / índices y restricciones / procedimientos almacenados / funciones / usuarios / etc. Hay una multitud de opciones que puede configurar para personalizar la salida, pero la mayoría se explica por sí misma.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 INSERTOS), también recomendaría el paquete de herramientas SSMS (gratis para la versión SQL 2008, pagada por la versión SQL 2012).
fuente
Puede encontrar una excelente explicación aquí: Generar script en SQL Server Management Studio
Cortesía de Ali Issa Esto es lo que debe hacer:
Si desea crear un script que solo genere las tablas (sin datos), ¡puede omitir la parte avanzada de las instrucciones!
fuente
No estoy seguro de por qué SSMS no tiene en cuenta el orden de ejecución, pero simplemente no lo hace. Esto no es un problema para las bases de datos pequeñas, pero ¿qué pasa si su base de datos tiene 200 objetos? En ese caso, el orden de ejecución importa porque no es realmente fácil revisar todos estos.
Para los scripts no ordenados generados por SSMS, puede seguir
a) Ejecutar el script (se insertarán algunos objetos, otros no, habrá algunos errores)
b) Eliminar todos los objetos del script que se han agregado a la base de datos
c) Regrese a a) hasta que finalmente se ejecute todo
La opción alternativa es utilizar una herramienta de terceros como ApexSQL Script o cualquier otra herramienta ya mencionada en este hilo (paquete de herramientas SSMS, Red Gate y otras).
Todos estos se ocuparán de las dependencias por usted y le ahorrarán aún más tiempo.
fuente
Sí, puede agregar tantas instrucciones SQL en un solo script como desee. Solo una cosa a tener en cuenta: el orden importa. No puede INSERTAR en una tabla hasta que la CREA; no puede establecer una clave externa hasta que se inserte la clave principal.
fuente