Información general acerca de la configuración del proyecto de base de datos

La configuración del proyecto de base de datos se utiliza para controlar aspectos de las configuraciones de la base de datos y de la compilación. Estas opciones de configuración se clasifican dentro de las siguientes categorías:

  • Configuración del proyecto

  • Eventos de compilación

  • Referencias

  • Compilar

  • Implementar

La configuración del proyecto, los eventos de compilación y las propiedades de implementación se almacenan en el proyecto de base de datos y se comparten a través del control de versiones.

Nota

La configuración específica del usuario se almacena en el archivo .dbproj.user. La configuración específica del proyecto se almacena en el archivo .dbproj.

Configuración del proyecto

Los valores de configuración de la siguiente tabla se aplican a todas las configuraciones de este proyecto de base de datos.

Campo

Valor predeterminado

Descripción

Versión del proyecto

La versión de SQL Server que especificó al crear el proyecto de base de datos.

Especifica la versión de SQL Server de destino para este proyecto de base de datos.

Intercalación para modelo de base de datos

Inglés (Estados Unidos) (1033) - CI

Especifica las reglas predeterminadas según las cuales se ordenan y se comparan los datos de la base de datos SQL Server Compact Edition subyacente que almacena el modelo de la base de datos. Debe especificar un valor para esta configuración que sea lo más cercano posible a la intercalación de la base de datos de destino. Podría establecer una diferencia en el uso de mayúsculas y minúsculas. Por ejemplo, puede utilizar una intercalación sin distinción entre mayúsculas y minúsculas para el modelo y una intercalación con distinción entre mayúsculas y minúsculas para la base de datos. Puede reemplazar la intercalación predeterminada en las definiciones de objeto.

NotaNota
La intercalación predeterminada es la misma para todas las plataformas.El valor predeterminado no cambia para coincidir con la configuración regional actual.Debe establecer manualmente la intercalación correspondiente a su configuración regional como intercalación predeterminada.

Esquema predeterminado

dbo

Especifica el esquema predeterminado donde se crean los objetos. Puede reemplazar esta configuración al cambiar una o varias definiciones de objeto.

Incluir nombre de esquema en nombre de archivo

Especifica si los nombres de archivo incluyen el esquema como prefijo, por ejemplo, dbo.Products.table.sql. Si esta casilla está desactivada, los nombres de archivo de los objetos utiliza el formato ObjectName.ObjectType.sql

Archivo de propiedades del catálogo

Properties\CatalogProperties.catalogproperties

Contiene la configuración detallada de las propiedades de la base de datos de destino. Todas las propiedades coinciden con las propiedades de una base de datos de SQL Server. Para obtener más información, vea este tema en el sitio web de Microsoft: Propiedades de la base de datos (página Opciones).

Opciones de Eventos de compilación

Puede utilizar estas opciones de configuración para especificar una línea de comandos que se ejecute antes de que comience la operación de generación y una línea de comandos que se ejecute una vez finalizada dicha operación.

Campo

Valor predeterminado

Descripción

Línea de comandos del evento anterior a la compilación

Ninguna

Especifica la línea de comandos que se ejecutará antes de generar el proyecto. Haga clic en Edición anterior a la generación para modificar la línea de comandos.

Línea de comandos del evento posterior a la compilación

Ninguna

Especifica la línea de comandos que se ejecutará después de generar el proyecto. Haga clic en Edición posterior a la generación para modificar la línea de comandos.

Ejecutar el evento posterior a la compilación

Si la generación es correcta

Especifica si la línea de comandos posterior a la generación se debería ejecutar siempre, sólo si la generación ha sido correcta o sólo si la generación ha actualizado el resultado del proyecto (el script de generación).

Para obtener más información, vea Cómo: Especificar acciones personalizadas que se ejecutan antes o después de la compilación y Línea de comandos del evento anterior/posterior a la compilación (Cuadro de diálogo, Proyectos de base de datos).

Referencias

Puede utilizar esta página para definir el servidor y las variables de la base de datos asociadas a referencias de bases de datos cruzadas. Además, puede especificar los valores de estas variables. Para obtener más información, vea Uso de referencias en proyectos de base de datos.

Configuración de generación

Estas opciones de configuración afectan al script de generación y a la base de datos de destino. Además, son específicas de la configuración y la plataforma especificadas, y normalmente varían de un usuario a otro.

Campo

Valor predeterminado

Descripción

Generar ruta de acceso de resultados

. \sql\

Especifica dónde se creará el script de generación al generar o implementar el proyecto de base de datos. Si especifica una ruta de acceso relativa, deberá ser relativa a la ruta de acceso al proyecto de base de datos. Si la ruta de acceso no existe, se creará.

Generar nombre de archivo de salida

DatabaseProjectName.sql

Especifica el nombre que desea proporcionar al script generado al crear el proyecto de base de datos. Si activó la casilla Generar automáticamente el nombre del archivo de salida de la compilación, el nombre de archivo que se genera automáticamente sobrescribe cualquier valor que especifique en este campo.

Tratar advertencias como errores

No

Especifica si una advertencia debería producir la cancelación de los procesos de compilación e implementación. Si desactiva esta casilla, las advertencias aparecen pero los procesos de compilación e implementación continúan.

Este valor es específico del proyecto, no del usuario, y se almacena en el archivo .dbproj.

Suprimir advertencias

En blanco

Especifica una lista de números, separados por coma o punto y coma, que identifican las advertencias que se suprimen. Las advertencias suprimidas no aparecen en la ventana Lista de errores ni afectan al resultado de la generación, incluso cuando se activa la casilla Tratar advertencias como errores.

NotaNota
También puede suprimir un tipo de advertencia para un archivo concreto si no desea suprimir ese tipo en todo el proyecto de base de datos.Para obtener más información, vea Cómo: Suprimir uno o varios tipos de advertencias.

Implementar

Puede utilizar esta configuración para controlar la implementación del proyecto de base de datos.

Campo

Valor predeterminado

Descripción

Configurar valores de implementación para

Configuración de mi proyecto

Especifica si se modifica la configuración de implementación del proyecto que se comparte con otros desarrolladores o si solamente se modifica la configuración del entorno de desarrollo aislado.

Acción de implementación

Crear un script de implementación (.sql) e implementarlo en la base de datos

Especifica si el script .sql creado se implementa en el servidor de destino o si solamente se crea el script sin implementarlo.

Nombre de script de implementación

nombreDeProyecto.sql

Especifica el nombre del script de implementación.

Conexión de destino

En blanco

Especifica la información de conexión del servidor de bases de datos que desea que sea el destino de la configuración de compilación especificada.

Nombre de la base de datos de destino

nombreDeProyectoDeBaseDeDatos

Especifica el nombre de la base de datos que se va a crear o actualizar en la conexión especificada en el campo de conexión de destino.

Archivo de configuración de implementación

El archivo de configuración de implementación contiene detalles específicos de cada destino de implementación, tal como describe la siguiente tabla.

Campo

Valor predeterminado

Descripción

Intercalación de comparación de implementación

Usar la intercalación de mi proyecto.

Especifica qué intercalación se usará al comparar los modelos de origen y de destino durante la implementación. Si hace clic en Usar la intercalación de mi proyecto, se usará la intercalación de origen. Si hace clic en Usar la intercalación del servidor, se usará la intercalación de destino.

Implementar propiedades de base de datos

Especifica si se implementa la configuración de CatalogProperties.catalogproperties al implementar el proyecto de base de datos.

Volver a crear siempre la base de datos

No

Especifica si la base de datos se eliminará y se volverá a crear en lugar de realizar una implementación incremental. Quizás le interese activar esta casilla si, por ejemplo, desea ejecutar pruebas unitarias de base de datos en una implementación limpia de la base de datos. Si desactiva esta casilla, la base de datos existente se actualizará en lugar de eliminarse y volver a crearse.

Bloquear implementación incremental si puede dar lugar a pérdida de datos

Especifica si la implementación debe detenerse si una actualización pudiese producir una pérdida de datos. Si esta casilla está activada, los cambios que provocarían la pérdida de datos detendrían la implementación con un error, lo que impediría que se perdiesen los datos. Por ejemplo, la implementación se detendría si una columna varchar (50) se hubiese cambiado a varchar (30).

NotaNota
La implementación sólo se bloquea si las tablas en las que puede producirse pérdida de datos contienen datos.La implementación continúa si no se pierde ningún dato.

Ejecutar el script de implementación en modo de usuario único

No

Especifica si la base de datos se debería poner en modo de un usuario durante la implementación. Si realiza la implementación en un servidor de bases de datos compartido, debe establecer el modo usuario único en la base de datos al implementar los cambios en ella. Este paso evita que otros usuarios realicen modificaciones mientras implementa el proyecto. Esta opción no está disponible si habilita la búsqueda de texto completo en la pestaña Configuración del proyecto de las propiedades del proyecto de base de datos.

Nota importanteImportante
Si la base de datos está en modo de usuario único, en cuanto se implementen los cambios en la base de datos se interrumpirán todas las demás conexiones a la misma.La cláusula ROLLBACK IMMEDIATE se especifica para que las transacciones pendientes finalicen tan pronto como se ponga la base de datos en modo usuario único.

Realizar copia de seguridad de la base de datos antes de la implementación

No

Especifica si se debe realizar una copia de seguridad de la base de datos antes de su implementación. Si desactiva esta casilla, no se realiza una copia de seguridad automáticamente. Si activa la casilla, se agregan instrucciones al script anterior a la implementación para realizar la copia de seguridad de la base de datos. Una operación de copia de seguridad puede ser lenta. Si compila e implementa en un entorno de desarrollo aislado, puede que no le interese realizar una copia de seguridad de la base de datos antes de compilarla e implementarla.

Nota importanteImportante
Antes de realizar la implementación en un servidor de producción, debería hacer siempre una copia de seguridad de la base de datos.Si no realiza una copia de seguridad automática de la base de datos como parte del proceso de compilación e implementación, debería hacer una manual antes de implementar los cambios.

Generar instrucciones DROP para objetos que están en la base de datos de destino pero no en el proyecto de base de datos

No

Especifica si los objetos que están en la base de datos de destino pero no en el proyecto de base de datos se deben eliminar del script de implementación. Esto permite excluir algunos archivos del proyecto y quitarlos temporalmente del script de compilación. Sin embargo, es posible que le interese mantener las versiones existentes de estos objetos en la base de datos de destino. Esta casilla no tiene ningún efecto si se activa la casilla Volver a crear siempre la base de datos, porque se eliminará la base de datos.

No usar instrucciones ALTER ASSEMBLY para actualizar tipos CLR

No

Especifica si deben usarse instrucciones ALTER ASSEMBLY para actualizar tipos CLR (Common Language Runtime) o si el objeto que crea la instancia del tipo CLR se va a quitar y volver a generar al implementar los cambios.

En la tabla siguiente se describen la configuración avanzada de la implementación.

Campo

Valor predeterminado

Descripción

AbortOnFirstError

True

Especifica si se debe cancelar la implementación cuando se produzca el primer error.

BuildtimeContributorsMustExist

True

Especifica si los colaboradores de implementación (que se registraron cuando se compiló el proyecto de base de datos) tienen que estar registrados cuando se implemente el proyecto.

CheckNewConstraints

True

Especifica si cuando se crean o se vuelven a crear restricciones, estas se crean con la opción NOCHECK habilitada de forma predeterminada. Al final del script de implementación, se agregará un bloque de instrucciones que comprobará todas las restricciones como un conjunto. Si establece esta propiedad en True, puede implementar el esquema sin que se produzcan errores de datos (originados por una restricción CHECK o FOREIGN KEY) en mitad del proceso de implementación, ya que la comprobación de datos se realiza al final del script de implementación.

CommentOutSetVarDeclarations

False

Especifica si la declaración de variables SetVar se debe comentar en el script de implementación generado. Podría optar por esta opción si piensa especificar los valores en la línea de comandos al realizar la implementación mediante una herramienta como SQLCMD.EXE.

DisableAndReenableDdlTriggers

True

Especifica si los desencadenadores de lenguaje de definición de datos (DDL) se deshabilitan al principio del proceso de implementación y se vuelven a habilitar al final del proceso de implementación.

DropConstraintsNotInSource

True

Especifica si las restricciones que no existen en el proyecto de base de datos se quitarán de la base de datos de destino al implementar actualizaciones en una base de datos.

DropIndexesNotInSource

True

Especifica si los índices que no existen en el proyecto de base de datos se quitarán de la base de datos de destino al implementar actualizaciones en una base de datos.

EnforceMinimalDependencies

False

Especifica si el cuerpo de los procedimientos, las funciones escalares y las funciones con valores de tabla se analizan e interpretan. Si habilita esta configuración, las dependencias incluidas en los cuerpos no se identifican, pero sí los cambios en la definición del objeto. Si establece esta opción en True, puede mejorar el rendimiento, pero se podrían producir problemas durante la implementación si faltan dependencias.

GenerateDeployStateChecks

True

Especifica si se generan instrucciones en el script de implementación que comprueben que el nombre de la base de datos y del servidor coincide con los nombres especificados en el proyecto de base de datos.

IgnoreAnsiNulls

False

Especifica si las diferencias en la configuración de valores null ANSI deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreAuthorizer

False

Especifica si las diferencias en el autorizador deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreColumnCollation

False

Especifica si las diferencias en las intercalaciones de columnas deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreComments

False

Especifica si las diferencias en los comentarios deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreCryptographicProviderFilePath

False

Especifica si las diferencias en la ruta de acceso del archivo del proveedor de servicios criptográficos deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreDdlTriggerOrder

False

Especifica si las diferencias en el orden de los desencadenadores de lenguaje de definición de datos (DDL) deben omitirse o actualizarse al implementar actualizaciones en una base de datos o en un servidor.

IgnoreDdlTriggerState

False

Especifica si las diferencias en el estado habilitado o deshabilitado de los desencadenadores de lenguaje de definición de datos (DDL) deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreDefaultSchema

False

Especifica si el esquema predeterminado establecido para el usuario debe actualizarse, si es diferente, al implementar actualizaciones en una base de datos.

IgnoreDmlTriggerOrder

False

Especifica si las diferencias en el orden de los desencadenadores de lenguaje de manipulación de datos (DML) deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreDmlTriggerState

False

Especifica si las diferencias en el estado habilitado o deshabilitado de los desencadenadores DML deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreExtendedProperties

False

Especifica si las diferencias en las propiedades extendidas deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreFilegroupPlacement

True

Especifica si las diferencias en la colocación de objetos en grupos de archivos deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreFillFactor

True

Especifica si las diferencias en el factor de relleno del almacenamiento de índices deben omitirse o si debe generarse una advertencia al implementar actualizaciones en una base de datos.

IgnoreIdentitySeed

False

Especifica si las diferencias en el valor de inicialización de una columna de identidad deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreIncrement

False

Especifica si las diferencias en el incremento de una columna de identidad deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreIndexOptions

False

Especifica si las diferencias en las opciones de índice deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreIndexPadding

True

Especifica si las diferencias en el relleno de índice deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreKeywordCasing

True

Especifica si las diferencias en el uso de mayúsculas y minúsculas de palabras clave deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreLockHintsOnIndexes

False

Especifica si las diferencias en las sugerencias de bloqueo en los índices deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreLoginSids

False

Especifica si las diferencias en el número de identificación de seguridad (SID) deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreNotForReplication

False

Especifica si las diferencias en la configuración de NOT FOR REPLICATION deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreObjectPlacementOnPartitionScheme

True

Especifica si las diferencias en la asignación de particiones de una tabla o índice particionado en grupos de archivos deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnorePartitionSchemes

False

Especifica si las diferencias en los esquemas y las funciones de partición deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnorePermissions

False

Especifica si las diferencias en los permisos deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreQuotedIdentifiers

False

Especifica si las diferencias en la configuración de identificadores entre comillas deben omitirse o actualizarse al implementar cambios en una base de datos.

IgnoreRoleMembership

False

Especifica si las diferencias en la pertenencia a roles de inicios de sesión deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreRouteLifetime

True

Especifica si las diferencias en la cantidad de tiempo que SQL Server conserva la ruta en la tabla de enrutamiento deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

IgnoreSemicolonBetweenStatements

True

Especifica si las diferencias en los caracteres de punto y coma entre las instrucciones Transact-SQL se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreStatisticsSample

True

Especifica si las diferencias en el ejemplo usado para CREATE STATISTICS se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreTableOptions

False

Especifica si las diferencias en las opciones de tabla se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreUserSettingsObjects

False

Especifica si las diferencias en los objetos de configuración de usuario se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreWhitespace

True

Especifica si las diferencias en los espacios en blanco se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreWithNocheckOnCheckContraints

False

Especifica si las diferencias en el valor de la cláusula WITH NOCHECK para las restricciones CHECK se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IgnoreWithNocheckOnForeignKeys

False

Especifica si las diferencias en el valor de la cláusula WITH NOCHECK para las claves externas se omitirán o actualizarán al implementar actualizaciones en una base de datos.

IncludeTransactionalScripts

False

Especifica si las instrucciones de transacciones se deben usar cuando sea posible al realizar la implementación de una base de datos.

ScriptDatabaseCollation

True

Especifica si las diferencias en la intercalación de la base de datos deben omitirse o actualizarse al implementar actualizaciones en una base de datos.

TreatVerificationErrorsAsWarnings

False

Especifica si los errores detectados durante la comprobación de la implementación deben tratarse como advertencias. La comprobación se realiza en el plan de implementación generado antes de que se ejecute para la base de datos de destino. La comprobación del plan detecta problemas como la pérdida de objetos solo en el destino (como los índices) que deben quitarse para realizar un cambio. La comprobación detectará también las situaciones en las que existen dependencias (como una tabla o vista) debido a una referencia a un proyecto compuesto, pero dichas dependencias no existen en la base de datos de destino. Puede realizar esta comprobación para obtener un listado completo de todos los problemas de implementación y evitar que la implementación se detenga en el primer error.

UnmodifiableObjectWarnings

True

Especifica si deben generarse advertencias cuando se encuentran diferencias en objetos que no se pueden modificar como, por ejemplo, si el tamaño o las rutas de acceso son diferentes en un archivo.

VerifyDeployment

True

Especifica si las comprobaciones deben realizarse antes de la implementación para que esta no se detenga en caso de que haya problemas que impidan realizar la implementación correctamente. Por ejemplo, la implementación se podría detener si hay claves externas en la base de datos de destino que no existen en el proyecto de base de datos, lo que causará errores durante la implementación.

Vea también

Tareas

Cómo: Configurar valores de compilación para proyectos de base de datos y de servidor

Cómo: Configurar valores de implementación para proyectos de base de datos y de servidor

Cómo: Compilar un proyecto de base de datos para generar un archivo de esquema (.dbschema) compilado

Cómo: Implementar cambios en bases de datos nuevas o existentes

Tutorial: Crear e implementar una nueva base de datos con control de versiones

Tutorial: Implementar cambios en una base de datos existente con control de versiones

Cómo: Suprimir uno o varios tipos de advertencias

Cómo: Definir variables para proyectos de bases de datos

Conceptos

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