sql-server - tabla - cambiar modern_spanish_ci_as a sql_latin1_general_cp1_ci_as
Encuentre intercalaciones no predeterminadas en columnas para todas las tablas en SQL Server (1)
Prueba este script aquí:
DECLARE @DatabaseCollation VARCHAR(100)
SELECT
@DatabaseCollation = collation_name
FROM
sys.databases
WHERE
database_id = DB_ID()
SELECT
@DatabaseCollation ''Default database collation''
SELECT
t.Name ''Table Name'',
c.name ''Col Name'',
ty.name ''Type Name'',
c.max_length,
c.collation_name,
c.is_nullable
FROM
sys.columns c
INNER JOIN
sys.tables t ON c.object_id = t.object_id
INNER JOIN
sys.types ty ON c.system_type_id = ty.system_type_id
WHERE
t.is_ms_shipped = 0
AND
c.collation_name <> @DatabaseCollation
Comprueba la intercalación predeterminada de la base de datos y luego encuentra cualquier columna que no cumpla con eso.
¿Existe un script que pueda usar para buscar todas las columnas de todas las tablas en un catálogo de SQL que no tenga la intercalación <database default>
?
Me he hecho cargo de un sistema heredado y tengo diferentes colaciones en algunas tablas y me gustaría encontrar todas las instancias en un hit en lugar de hacerlo manualmente.
Sin embargo, no quiero cambiar la intercalación programáticamente ya que me gustaría revisar cada tabla una por una.