Compartir a través de


Información general acerca de los scripts de base de datos

Actualización: noviembre 2007

Los scripts de base de datos son archivos adicionales que contienen instrucciones Transact-SQL (T-SQL) o utilidades como SQLCMD que no forman parte de la definición del esquema de base de datos. Puede utilizar scripts de base de datos como parte del proceso de implementación (scripts anteriores y posteriores a la implementación) o pueden ser scripts de administración que se almacenan en el proyecto de base de datos.

Durante una operación de refactorización de base de datos en un objeto de esquema, puede actualizar automáticamente cualquier script que contenga un objeto de base de datos cuyo nombre cambie como parte de esa operación.

La carpeta Scripts admite las acciones siguientes:

  • Agregar nuevo elemento

  • Agregar carpeta

  • Agregar script

  • Excluir del proyecto

  • Acciones para el control de versiones (como proteger, desproteger, etc.)

  • Cortar

  • Copiar

  • Delete

  • Rename

  • Propiedades

Los scripts incluidos en la carpeta Scripts admiten las acciones siguientes:

  • Abrir

  • Abrir con

  • Excluir del proyecto

  • Acciones para el control de versiones (como proteger, desproteger, etc.)

  • Cortar

  • Copiar

  • Delete

  • Rename

  • Propiedades

Scripts de implementación

Cuando se genera un proyecto de base de datos, el script anterior a la implementación, las definiciones de objetos de base de datos y el script posterior a la implementación se combinan en un solo script de generación. Puede especificar un solo script anterior a la implementación y un solo script posterior a la implementación, pero en éstos puede incluir otros scripts. Los scripts adicionales se incluyen mediante SQLCMD. (Vea la sección relacionada más adelante en este tema.) Al generar el proyecto de base de datos, todos los scripts incluidos se combinan en el script de generación.

Un script anterior a la implementación se designa estableciendo la propiedad Acción de generación del archivo de script en PreDeploy. De igual forma, un script posterior a la implementación se designa estableciendo la propiedad Acción de generación del archivo de script en PostDeploy. Al designar un script como un script anterior o posterior a la implementación, si se hubiera designado previamente otro script con esa acción de generación, se establecerá automáticamente la acción de generación del otro script en No está en la generación. Este comportamiento se debe al diseño: en un proyecto de base de datos no puede haber más de un script anterior a la implementación y un script posterior a la implementación.

Al importar un esquema de base de datos, la mayor parte de la información del esquema se importa en las definiciones de objeto de base de datos del proyecto de base de datos. En cambio, otra información (como los inicios de sesión, los permisos, las reglas y los valores predeterminados) se importa en los scripts anterior o posterior a la implementación. Cuando es así, se crean archivos adicionales en la subcarpeta Anterior a la implementación o en la subcarpeta Posterior a la implementación de la carpeta Scripts del proyecto de base de datos. Estos archivos de script adicionales se incluyen en los scripts anterior y posterior a la implementación, según corresponda. Los scripts incluidos tienen la propiedad Acción de generación establecida en No está en la generación, ya que no están incluidos directamente en la generación, sino que indirectamente, a través del script anterior a la implementación o del script posterior a la implementación. Todas las instrucciones de script no reconocidas se colocan en el archivo ScriptsIgnoredOnImport.sql de la carpeta Scripts.

Nota importante:

Si los scripts de implementación hacen referencia a objetos de base de datos cuyos nombres o características cambiarán posteriormente, debe modificar manualmente los scripts de implementación para que no se produzca un error en la implementación. Por ejemplo, si tiene reglas y valores predeterminados enlazados a una tabla y cambia el nombre de la tabla pero no modifica el script de implementación, se producirá un error en el enlace. Si cambia el nombre de la tabla mediante una operación de refactorización de cambio de nombre, el script de implementación se actualizará en la operación de refactorización.

Importar esquemas de base de datos y scripts anterior a la implementación

De manera predeterminada, el archivo script.predeployment.sql es el script principal anterior a la implementación. Este script se crea automáticamente como un archivo vacío cuando se crea un proyecto de base de datos. Al importar un esquema de base de datos, pueden crearse otros scripts automáticamente en la misma carpeta que contiene el script anterior a la implementación. Si se crean scripts adicionales, se agregan instrucciones al archivo script.predeployment.sql para incluirlos. Puede designar un archivo diferente como script anterior a la implementación si establece su propiedad Acción de generación en PreDeploy.

Nota:

Sólo puede haber un script anterior a la implementación con una propiedad Acción de generación establecida en PreDeploy. Para utilizar varios scripts en el paso anterior a la implementación, debe designar un script anterior a la implementación de nivel superior que incluya los demás scripts anteriores a la implementación; para ello, se usa la instrucción siguiente: SQLCMD :r.\nombreDeArchivo.sql.

Nota importante:

Debe modificar manualmente el script anterior a la implementación para poder volver a crear los objetos de los que no se pueda importar información de regeneración suficiente durante una operación de importación de esquema. Por ejemplo, debe modificar el script para crear claves de cifrado y certificados.

Los archivos de script de la tabla siguiente se generan al importar un esquema de base de datos:

Nombre de archivo

Orden de inclusión

Notas

Logins.sql

Primero

Este script contiene las definiciones de todos los inicios de sesión de Microsoft SQL Server que se definieron en la base de datos de origen. Para establecer los inicios de sesión mediante scripts, se utiliza CREATE LOGIN en Microsoft SQL Server 2005 y sp_addlogin en SQL Server 2000.

LinkedServers.sql

Second

Este script contiene instrucciones para crear servidores vinculados. (Para obtener más información, vea "Vincular servidores" en el sitio web de Microsoft.) Al importar el esquema de base de datos, se agrega una instrucción sp_addlinkedserver al script para cada servidor vinculado de la base de datos de origen.

CustomErrors.sql

Tercero

Este script contiene mensajes de error definidos por el usuario. Al importar el esquema de base de datos, se agrega una instrucción sp_addmessage al script para cada mensaje de error personalizado que se haya definido en la base de datos de origen.

EncryptionKeysAndCertificates.sql

Cuarto

Este script contiene marcadores de posición para cada instrucción CREATE SYMMETRIC KEY, CREATE ASYMMETRIC KEY, CREATE MASTER KEY y CREATE CERTIFICATE de la base de datos de origen.

Nota:
Este script sólo se utiliza en SQL Server 2005.

Importar esquemas de base de datos y scripts posteriores a la implementación

De manera predeterminada, el archivo postdeployment.sql es el script principal posterior a la implementación. Este script se crea automáticamente como un archivo vacío cuando se crea un proyecto de base de datos. Al importar un esquema de base de datos, se pueden crear scripts adicionales. Si se crean scripts adicionales, se agregan instrucciones al archivo script.postdeployment.sql para incluirlos. Puede designar un archivo diferente como script posterior a la implementación si establece su propiedad Acción de generación en PostDeploy.

Nota:

Sólo puede haber un script posterior a la implementación con una propiedad Acción de generación establecida en PostDeploy. Para usar varios scripts en el paso posterior a la implementación, debe crear un script posterior a la implementación de nivel superior que incluya los demás scripts posteriores a la implementación; para ello, se usa la instrucción siguiente: SQLCMD :r.\nombreDeArchivo.sql.

Nota importante:

Es posible que tenga que modificar manualmente los scripts posteriores a la implementación para poder volver a crear o actualizar los objetos de los que no se pueda importar información de regeneración o modificación suficiente durante una operación de importación de esquema. Esto puede suceder, por ejemplo, al asociar usuarios a funciones.

Los archivos de script de la tabla siguiente se generan al importar un esquema de base de datos:

Nombre de archivo

Orden

Notas

Storage.sql

Primero

Este script contiene definiciones relacionadas con objetos de almacenamiento, como archivos y grupos de archivos.

Permissions.sql

Second

Este script contiene los permisos GRANT, REVOKE o DENY para la base de datos de destino. Al importar un esquema de base de datos, se agregan instrucciones a Permissions.sql para los permisos que estén especificados en la base de datos de origen.

RoleMemberships.sql

Tercero

Este script contiene las instrucciones sp_addrolemember necesarias para asociar usuarios a funciones.

RulesAndDefaults.sql

Cuarto

Este script contiene instrucciones adicionales para definir reglas y valores predeterminados para la base de datos de destino. Al importar un esquema de base de datos, se agregan instrucciones adicionales al script RulesAndDefaults para enlazar las reglas y los valores predeterminados a las columnas o tipos de datos de alias y para agregar cuentas de seguridad como miembro de una función de base de datos de SQL Server existente en la base de datos. Vea en la tabla siguiente las instrucciones que se agregarán al script.

DatabaseObjectOptions.sql

Quinto

Este script contiene opciones que se aplican a los objetos de base de datos tras la implementación.

Signatures.sql

Sexto

Este script contiene definiciones de firmas para la base de datos de destino. Al importar un esquema de base de datos, se agregan instrucciones adicionales al script Signatures.sql para cada firma definida en la base de datos de origen.

Nota:   este script sólo se utiliza en SQL Server 2005.

Las reglas, los valores predeterminados y las cuentas de seguridad se agregan de la manera siguiente:

Para

SQL Server 2005

SQL Server 2000

Enlazar una regla a una columna o a un tipo de datos de alias

ALTER TABLEnombreDeTablaADD CONSTRAINTnombreDeRestricciónCHECK

sp_bindrule

Enlazar un valor predeterminado a una columna o a un tipo de datos de alias

ALTER TABLEnombreDeTablaADD CONSTRAINTnombreDeRestricciónDEFAULT

sp_binddefault

Agregar una cuenta de seguridad como miembro de una función de base de datos de SQL Server existente

sp_addrolemember

sp_addrolemember

Scripts adicionales

Además de scripts de implementación, puede agregar otros scripts de uso general al proyecto de base de datos. Para que le sea más fácil organizar estos scripts adicionales, puede agregar subcarpetas a la carpeta de scripts del proyecto de base de datos. Al abrir cualquiera de estos scripts adicionales en el editor de T-SQL, puede conectarse a su servidor de bases de datos y ejecutar el script parcial o totalmente. Por ejemplo, si tiene scripts de auditoría que ejecuta de forma rutinaria, este método puede resultar cómodo para guardar cada script con la base de datos asociada y también para colocarlos bajo el mismo sistema de control de versiones que el esquema de base de datos. Estos scripts tendrán la propiedad Acción de generación establecida en No está en la generación.

Vea también

Tareas

Cómo: Especificar scripts anteriores o posteriores a la implementación

Cómo: Agregar scripts de administración a un proyecto de base de datos

Conceptos

Descripción general de la compilación e implementación de bases de datos

Introducción a la terminología de Database Edition

Otros recursos

Administrar conexiones de base de datos en el editor de Transact-SQL

Análisis y ejecución de scripts en el editor de Transact-SQL