Compartir a través de


Intercalar las bases de datos definidas por el usuario para coincidir con las bases de datos maestras

Esta regla comprueba si las bases de datos definidas por el usuario se definen utilizando una intercalación de base de datos que es igual que la intercalación de las bases de datos master o model.

Prácticas recomendadas

Se recomienda que las intercalaciones de bases de datos definidas por el usuario coincidan con la intercalación de las bases de datos master o model. De lo contrario, pueden producirse conflictos de intercalación que podrían impedir que el código se ejecute. Por ejemplo, cuando un procedimiento almacenado une una tabla a una tabla temporal, SQL Server podría finalizar el lote y devolver un error de conflicto de intercalación si las intercalaciones de la base de datos definida por el usuario y la base de datos model son diferentes. Esto se debe a que las tablas temporales se crean en la base de datos tempdb, que basa su intercalación en la de la base de datos model.

Si experimenta errores de conflictos de intercalación, considere una de las soluciones siguientes:

  • Exporte los datos de la base de datos de usuario e impórtelos en tablas nuevas que tengan la misma intercalación que las bases de datos master y model.

  • Vuelva a generar las bases de datos del sistema para utilizar una intercalación que coincida con la intercalación de las bases de datos de usuario. Para obtener más información acerca de cómo volver a generar las bases de datos del sistema, vea Volver a generar bases de datos del sistema.

  • Modifique los procedimientos almacenados que unan las tablas de usuario a las tablas en tempdb para crear las tablas en tempdb utilizando la intercalación de la base de datos de usuario. Para ello, agregue la cláusula COLLATE database_default a la columna de la tabla temporal, como se muestra en el ejemplo siguiente:

    CREATE TABLE #temp1 ( c1 int, c2 varchar(30) COLLATE database_default )