Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

VÍDEO: Cómo exportar una base de datos SQL Server a un script (incluyendo los datos)

Existen muchas maneras de poder enviar una base de datos de un servidor SQLServer a otro. Puedes hacer un backup, puedes desvincular la base de datos y copiar los archivos .mdf y .log para copiarlos y transportarlos hasta el otro servidor... Pero una de las maneras más sencillas y universales es generar un script de T-SQL que reconstruya la base de datos en cualquier lado. Esto te permite copiar la información en un formato manejable (al fin y al cabo es solo texto), poder retocar cualquier cosa si lo necesitas, y no da problemas por diferencias en el almacenamiento binario entre una versión y otra de SQL Server.

De hecho, otra ventaja es que puedes elegir con detalle exactamente qué te interesa exportar. Se puede generar un script tanto para crear las tablas, índices, relaciones, procedimientos almacenados y cualquier otro objeto de la base de datos, y al mismo tiempo también líneas de script para insertar cualquier dato que haya en la base de datos (con instrucciones INSERT). Buscando la información concreta que nos interese dentro del script podremos elegir exactamente qué queremos regenerar en otro servidor, modificar la forma en la que se genera cada objeto, eliminar o añadir registros en cualquier tabla...

Finalmente otra gran ventaja de disponer de un script T-SQL es que podemos añadirlo al control de código fuente (Git, Subversion, Mercurial o lo que usemos) y poder saber exactamente qué cambios ha habido desde una versión anterior de la base de datos a la versión actual, facilitando la comparación.

Conseguir generar este tipo de script es muy fácil, y solamente necesitas conocer un par de detalles para poder exportar toda la información.

En este vídeo que te ofrecemos a continuación puedes ver lo sencillo que es y qué par de detalles debes tener en cuenta a la hora de hacerlo:

¡Espero que te resulte útil!

José M. Alarcón Aguín Fundador de campusMVP, es ingeniero industrial y especialista en consultoría de empresa. Ha escrito diversos libros, habiendo publicado hasta la fecha cientos de artículos sobre informática e ingeniería en publicaciones especializadas. Microsoft lo ha reconocido como MVP (Most Valuable Professional) en desarrollo web desde el año 2004 hasta la actualidad. Puedes seguirlo en Twitter en @jm_alarcon o leer sus blog técnico o personal. Ver todos los posts de José M. Alarcón Aguín
Archivado en: Acceso a Datos

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Comentarios (6) -

Disgraptec
Disgraptec

Estimado Jose Manuel, en el caso de que se requiera que esto se realice en una tarea programada, como sería su ejecución o quizá se debería programar algún codigo para que se lleve a cabo la tarea?. Gracias por la respuesta.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola:

Pues me temo que no puedes hacerlo desde aquí. Tendrías que crear un script que leyese el esquema de datos desde las tablas del sistema o utilizar la herramienta "SQL Server Import and Export Data" que te permite generar un paquete para trasegar datos entre dos bases de datos, que te permitirá crear una tarea programada para enviar los cambios de una base de datos a otra (aunque no es exactamente lo mismo y en las versiones Express no puedes guardarlo para reutilizarlo).

Siento no poder ayudarte más.

Saludos.

Responder

Si, pero... como hago eso mismo desde un archivo mdf que tengo en mi proyecto?

Responder

Este proceso funciona muy bien pero en bases de datos pequeñas, pero he tratado de migrar una base de datos grande de 1.5 gb, y no he podido abrirlo con ningun editor de codigos (bloc de notas, notpad++, etc.) me dice que el archivo es demasiado grande, no se si conoce alguna forma de importacion desde el panel de sql server o como puedo abrir este archivo en el new query. gracias.

Responder

José Manuel Alarcón
José Manuel Alarcón

Hola Pablo:

Eso es una limitación del editor que estés usando, no del proceso de exportación.

Mi consejo sería que generases los objetos de la base de datos por un lado y los datos por otro, en un archivo diferente. Además que usases algún editor que sea capaz de gestionar archivos muy grandes. En realidad el propio Notepad++ o Visual Studio Code deberían funcionarte bien. En el caso de Notepad++ ábrelo como un archivo de texto plano (cámbiale la extensión de .sql a .txt para que no use coloreado de sintaxis y quítale la opción de "wrapping" de líneas) y debería irte bien.

Saludos

Responder

Hola,
Necesito bajar una tabla diariamente desde un servidor SQL generando una tabla plana... pero esa tabla debe quedar en una estación de trabajo especifica.... hasta el momento no he logrado concretar la tarea.
Sabes como puedo hacerlo... estoy ocupando este comando
EXEC xp_cmdshell 'bcp "SELECT * FROM scf..my_file" queryout "C:\my_file.txt" -T -c -t'
Gracias

Responder

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.