2010-02-21 8 views

Respuesta

9

La clasificación en el nivel de la tabla es por columna, por lo que es posible tener una intercalación diferente de la base de datos. Si la intercalación no está definida en el nivel de columna, se establece de manera predeterminada en la configuración de intercalación de la base de datos.

SQL Server 2000:

SELECT c.name, 
     c.collation 
    FROM SYSCOLUMNS c 
WHERE [id] = OBJECT_ID('your_table_name') 

SQL Server 2005 +:

SELECT c.name, 
     c.collation_name 
    FROM SYS.COLUMNS c 
    JOIN SYS.TABLES t ON t.object_id = c.object_id 
WHERE t.name = 'your_table_name' 
+0

El último caso puede ser incluso más simple (sin unión o ID de objeto) si utiliza el esquema 'INFORMATION_SCHEMA' en lugar del esquema' sys'. Obtendrá: 'SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'' –

+0

Lo sentimos, el comentario anterior solo se aplica a SQL Server 2012 y posterior, que obviamente no estaba disponible cuando se escribió la respuesta, pero creo que la mayoría de las personas utilízalo ahora, por lo que el comentario aún puede ser útil. –

1

No existe la intercalación de una tabla.

Una base de datos tiene una intercalación predeterminada (que de forma predeterminada es la intercalación para el servidor).

La intercalación predeterminada para la base de datos se aplicará a cualquier columna que agregue a una tabla, A MENOS que especifique explícitamente una intercalación en el nivel de columna.

+1

¿Cómo puedo conseguir este nivel de columna de colación? –

Cuestiones relacionadas