2011-03-29 10 views
10

Mi razón principal para esto es hacer un seguimiento de los cambios de esquema de la base de datos para mi aplicación. En SQL Server Management Studio, puedo generar un script de creación que crea la base de datos, pero no contiene ningún dato de prueba. Lo ideal es que cuando se ejecute el script, se DEJE caer la base de datos existente (suponiendo que ya exista) y luego recrearla usando este nuevo script que contenga cambios de esquema y datos de prueba de mi máquina de desarrollo.¿Cómo puedo generar un script de mi base de datos tal como está?

Entonces, ¿cómo puedo generar una secuencia de comandos que creará una base de datos con todas las tablas, procesos almacenados, disparadores, vistas, datos de prueba, etc.?

He intentado utilizar la funcionalidad de importación/exportación, pero eso no es bueno porque no parece copiar los procedimientos almacenados. Además, sería bueno tener un script para poder hacer un seguimiento de los cambios al esquema usando mercurial.

Estoy usando SQL Server Express 2008 R2 junto con SQL Server Management Studio.

+0

Puede hacer clic con el botón derecho en su base de datos (en el estudio de administración de SQL Server) y seleccionar "generar scripts". Allí puede elegir todos los aspectos de la base de datos que desee crear, incluidos índices, desencadenantes, usuarios, esquemas y datos (entre otros) – Lamak

+0

Tal vez solo estoy siendo denso, pero lo he intentado y no hay datos en absoluto en el archivo que se crea. – Pete

+1

se le presentan muchas opciones, una de ellas es crear una secuencia de comandos de los datos (de manera predeterminada, esta opción es falsa) – Lamak

Respuesta

21

Usted no ha mencionado la versión de SQL Server, pero en SQL 2008 esto es muy fácil

SQL 2008
expanda Bases de datos
clic derecho Base de datos
Elija las tareas> generar scripts
Generar y Se abrirá el cuadro de diálogo Publicar
Elija sus objetos (es decir, tablas, procs, etc.)
Haga clic en Siguiente En el conjunto de secuencias de comandos
Opciones elija Opciones avanzadas
U nder general Elegir Script GOTA Y CREAR - GOTA GUIÓN Y CREAR
Tipos de datos Para la escritura - esquema y los datos
cerrar ventana avanzada
Elige a guardar en el archivo.

+0

Estoy avergonzado de que no pude encontrar eso. Muchas gracias sin embargo. – Pete

+1

@Pete - ¡No me avergonzaría, ya que está bastante escondido! Es una característica útil que debería aparecer mejor en SSMS. –

+1

funciona para ms sql 2012 – neftedollar

0

Normalmente hago copias de seguridad de una base de datos antes de comenzar un nuevo desarrollo en ella.

la mejor manera es restaurar la copia de seguridad cuando sea necesario, no sé cómo hacerlo por script.

3

Escribí una utilidad de línea de comando de código abierto llamada SchemaZen que hace esto. Es mucho más rápido que la creación de scripts desde Management Studio y su salida es más amigable con el control de versiones. Admite scripts de esquema y datos.

Para generar secuencias de comandos se ejecutan:

schemazen.exe script --server localhost --database db --scriptDir c:\somedir

A continuación, volver a crear la base de datos de secuencias de comandos se ejecutan:

schemazen.exe create --server localhost --database db --scriptDir c:\somedir
1

Cuidado con diferencia en el cotejo de base de datos. Si desarrolla en una base de datos con una intercalación insensible a las mayúsculas y prueba y ejecuta las secuencias de comandos generadas por SSMS como una base de datos con una intercalación sensible a mayúsculas y minúsculas, los errores en caso de que se rompan las secuencias de comandos.

Cuestiones relacionadas