Solucionar problemas de comparación de esquemas

Cuando se comparan dos esquemas de base de datos pueden surgir los problemas que se mencionan en este tema.

Dependencias y scripts de actualización

Para generar los objetos en el orden correcto en un script de actualización, Comparación de esquemas examina las dependencias de objeto. Por ejemplo, si una vista depende de una tabla, la tabla se debe crear antes que la vista. Si el objeto que depende del segundo objeto no tiene un nombre calificado con el nombre de esquema, quizás no se pueda identificar la dependencia y el script de actualización o de creación incluiría las instrucciones en un orden incorrecto. Esta diferencia puede producir errores al actualizar una base de datos de destino para que coincida con una base de datos de origen o al implementar los cambios en una base de datos. Este problema también se aplica a los scripts de generación de base de datos.

Nota

Para evitarlo, asegúrese de calificar con el nombre de esquema los nombres de los objetos que participan en relaciones de dependencia. En el ejemplo siguiente, podrá estar seguro de que la dependencia se identificará correctamente si cambia el final de la instrucción para que haga referencia a [dbo].[KeysTable] en lugar de KeysTable:

CREATE VIEW [NewUser].[ViewReferencingScalarFunction] AS SELECT Column2, dbo.SimpleMultiplyParamByTwo(PK_Column) AS [Function] FROM KeysTable

Opciones de tabla y de índice

La comparación de esquemas no funciona o hay opciones de script que se establecen con sp_tableoption o sp_indexoption. No hay ninguna solución para este problema.

Se agota el tiempo de espera al comparar bases de datos grandes

Si se produce un error de tiempo de espera al comparar los esquemas de bases de datos grandes, es posible que tenga que aumentar el valor de tiempo de espera. Esta opción no se expone a través de la interfaz de usuario. Debe modificar el valor de QueryTimeoutSeconds almacenado en el Registro, en HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\VSTSDB\Database. Se especifica en segundos. De manera predeterminada, el tiempo de espera es de 60 segundos.

Comparar archivos y grupos de archivos

Si un grupo de archivos en una base de datos de destino es de sólo lectura, esa propiedad siempre aparecerá como una diferencia en una comparación de esquemas entre esa base de datos y un proyecto de base de datos. Además, se omite el grupo de archivos primario al comparar los esquemas.

Además, si intenta sincronizar dos bases de datos en el mismo servidor, podría tener problemas al intentar sincronizar los archivos secundarios y las secuencias de archivo. Puede resolver estos problemas excluyendo los grupos de archivos y los archivos al sincronizar.

Vea también

Tareas

Cómo: Modificar objetos de base de datos

Cómo: Comparar esquemas de base de datos

Cómo: Comparar y sincronizar los datos de dos bases de datos