2010-02-21 13 views

risposta

9

Le regole di confronto a livello di tabella si riferiscono a una colonna per base, pertanto è possibile disporre di regole di confronto diverse dal database. Se le regole di confronto non sono definite a livello di colonna, per impostazione predefinita viene impostata l'impostazione di confronto del database.

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

Quest'ultimo caso può essere persino più semplice (nessun join o ID oggetto) se si utilizza lo schema 'INFORMATION_SCHEMA' invece dello schema' sys'. Riceverai: 'SELEZIONA COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'your_table_name'' –

+0

Siamo spiacenti, il commento sopra riportato si applica solo a SQL Server 2012 e versioni successive che ovviamente non era disponibile quando è stata scritta la risposta, ma suppongo che la maggior parte delle persone usarlo ormai, quindi il commento può essere ancora utile. –

1

Non esiste una raccolta per un tavolo.

Un database ha un confronto predefinito (che per impostazione predefinita è il confronto per il server).

Le regole di confronto predefinite per il database verranno applicate a qualsiasi colonna aggiunta a una tabella, A MENO CHE non si specifichi esplicitamente una collazione a livello di colonna.

+1

Come posso ottenere queste regole di confronto a livello di colonna? –

Problemi correlati