versiones sirve que para descargar caracteristicas sql-server sql-server-2000 sqltools

sql server - sirve - ¿Existe una alternativa de "pobre" a RedGate para crear un esquema completo de la base de datos?



sql server que es (10)

Estoy en una situación en la que generaría un script para una base de datos que podría ejecutar en otro servidor y obtener una base de datos idéntica a la original, pero sin ninguno de los datos. En esencia, quiero terminar con un gran script de creación que capture el esquema de la base de datos.

Estoy trabajando en un entorno que tiene instalado SQL Server 2000 y no puedo instalar las herramientas de cliente de 2005 (en caso de que me ayuden). No puedo pagar RedGate, pero realmente me gustaría tener una base de datos con esquema idéntico en otro servidor.

¿Alguna sugerencia? Cualquier herramienta .exe (no requiere instalación) simple, consejos, o trucos de T-SQL sería muy apreciada.

Actualización: la base de datos con la que estoy trabajando tiene más de 200 tablas y varias relaciones y restricciones de clave foránea, por lo que el scripting manual de cada tabla y pegar juntos el script no es una opción viable. Estoy buscando algo mejor que esta solución manual

Actualización adicional A menos que me falta algo por completo, esta no es una solución viable con las herramientas SQL 2000. Cuando selecciono la opción para generar un script de creación en una base de datos. Terminé con un script que contiene un comando CREATE DATABASE y no crea ninguno de los objetos: las tablas, las restricciones, etc. El estudio de administración de SQL 2005 también puede manejar los objetos, pero la base de datos se encuentra en un entorno donde no hay forma de conectar una instalación de Management Studio.


Ejecute SQL Server Management Studio, haga clic con el botón derecho en la base de datos y seleccione Script Database as > Create to > file

Eso es para SQL Server 2005. SQL Server 2000 Enterprise Manager tiene un comando similar. Simplemente haga clic con el botón derecho en la base de datos > All Tasks > Generate Scripts .

EDITAR: en SQL Server 2005, puede seleccionar "Base de datos" en el panel del explorador de objetos y seleccionar varias bases de datos en el panel de detalles. Luego, haga clic derecho en su selección y "Base de datos de secuencias de comandos como> Crear en> archivo". Esto hará que los incluya en un solo script e incluirá todas las tablas, claves, procedimientos almacenados y restricciones.


Michael Lang, cuando hace clic derecho en la base de datos y elige crear una secuencia de comandos, hay varias cajas de opciones en las que deberá hacer clic para que todo se genere. 2005 es mucho más fácil a este respecto, pero 2000 puede hacer esto, solo necesita seleccionar las opciones adecuadas.



Asistente de publicación de bases de datos de Microsoft (en Visual Studio 2008).


He utilizado este programa de CodeProject con éxito muchas veces antes. No solo crea el esquema, sino que también puede (opcionalmente) crear todas las instrucciones INSERT necesarias para recrear la base de datos.

Lo he usado contra SQL Server 2000 en el pasado. Obviamente, si tiene un millón de filas en una tabla, puede que no sea una buena idea crear un script para los contenidos, pero en realidad es una herramienta muy útil para crear una serie de scripts SQL para replicar una base de datos.


Por lo tanto, supongo que no puede instalar SQL Server Management Studio. Ni siquiera la versión gratuita. Si esto es algo único, instalaría las herramientas de puerta roja. La versión de prueba es completamente funcional durante 14 días. Haz tu trabajo, luego desinstálalo. También puede consultar http://www.xsqlsoftware.com/ , tienen funciones similares a las de Red Gate. Si su base de datos es pequeña, entonces tienen una opción gratuita para usted. También me gusta http://www.apexsql.com/ . Usa la versión de prueba de uno de estos y luego intenta de nuevo convencer a tu jefe para que compre uno.


Como mencionaste en SQL Server 2000, el comando a usar es:

Mientras esté en Enterprise Manager, seleccione la base de datos desde la que desea crear los objetos y, a continuación, haga clic con el botón derecho y seleccione Todas las tareas -> Generar secuencias de comandos SQL ...

Mientras que en el Panel de Opciones es útil seleccionar la opción Crear un archivo por objeto , de esa manera puede almacenar cada objeto en control de fuente por separado.

Por lo tanto, cada vez que realice algunas actualizaciones en una tabla, puede verificarlo en el control de código fuente para que otros sepan que usted trabaja en él y, después de terminar, puede crear un script para ese único objeto y guardarlo.

Para crear un script de un solo objeto, puede usar la misma opción Todas las tareas -> Generar secuencias de comandos SQL ... y luego seleccionar solo ese objeto.

El único problema con ese enfoque es cuando desea restaurar la base de datos completa que necesita para cuidar los objetos dependientes en el sentido de que el objeto de nivel superior debe restaurarse antes que los dependientes de ellos.

Irónicamente, cuando se crea una secuencia de comandos para toda la base de datos en un archivo, los objetos no se ordenan en términos de dependencia, sino que se basan en la fecha de creación. Eso lleva a errores cuando intenta usarlo para restaurar el DB completo.

Terminamos creando un archivo por lotes que crearía cada objeto por separado llamando "osql"

Y todo funcionó bastante bien en ese momento

Ahora usamos SQLCompare Pro y nos libera de esa o esa molestia, pero si no la publica con frecuencia, puede vivir sin ella.


Si se trata de una operación única y no le apetece pedir las secuencias de comandos del objeto, simplemente descargue una versión de prueba gratuita de RedGate SQL Compare .

Es una versión de 14 días de trabajo completo, por lo que hará todo el trabajo por usted, es una solución completamente legítima. Y tendrá todos los scripts para usar en el futuro con sus scripts manuales. De todos modos, estoy bastante seguro de que si descubres cuán útil es la herramienta, la comprarás en una etapa posterior y eso es lo que probablemente esperan al ofrecer una prueba totalmente funcional. De alguna manera funcionó de esa manera en mi caso.

Solo tenga en cuenta que una vez que finalice la prueba, afectará a todas las herramientas, así que asegúrese de aprovecharla al máximo.


Además de las respuestas anteriores, me gustaría sugerir que (para proyectos futuros, al menos) no tiene que dominar el diseño de la base de datos en la base de datos.

Una forma de lograr esto es simplemente mantener sus tablas de base de datos, procedimientos, etc. como ''CREAR'' las secuencias de comandos desde el primer día, e idear una secuencia de comandos maestra que juntará todas las secuencias de comandos individuales para su implementación en una base de datos de su elección.

Una solución más sofisticada es usar algo como Visual Studio Database Edition (Probablemente demasiado caro, si sus comentarios son cualquier cosa) que le permite tratar cada objeto de la base de datos como un nodo en un proyecto, mientras permite que todo esté completo. implementado con unos pocos clics.

La explicación de estas dos opciones es demasiado simplificada, ya que hay muchos otros problemas: control de versiones, migración de datos, etc., pero el principio principal es el mismo.

Una vez que haya extraído su secuencia de comandos, utilizando una de las otras respuestas, es posible que desee considerar el uso de esta secuencia de comandos como la base de su "maestro".

Simplemente mantenga el ''diseño'' fuera de la base de datos, eso es puramente para ''implementaciones''.

Trate de pensar que el proceso es similar al código en desarrollo: la fuente y los binarios se mantienen separados, y el último se genera a partir del primero.


Los otros son correctos, pero para crear una base de datos completa desde cero, debe crear un ''dispositivo'' en SQL antes de ejecutar las tablas de creación y los scripts de procedimientos ...

Use ADODB, ya que casi todas las cajas de Windows (si no todas) lo tienen instalado para ejecutar el script.

Demonios, incluso podrías escribir un vbScript que se ejecute para construir tu base de datos completa. Cualquier tabla de dominio que tenga, debe recordar activar la inserción de identidad antes de agregar los elementos al DB.

Estoy abierto a compartir código fuente si lo necesita. Tuve que escribir lo mismo hace un par de años, y terminé con 3 scripts, uno que creó el dispositivo, luego las tablas, luego los procedimientos / desencadenantes y los datos de dominio. Escribí el código para analizar la secuencia de comandos predeterminada y permitir que el usuario nombre su propia base de datos, inicios de sesión, etc. Puede que no tenga que llegar tan lejos.

Espero que esto ayude en absoluto.