Condividi tramite


Impostazione delle regole di confronto dei database definiti dall'utente in modo che corrispondano a quelle dei database master e modello

Questa regola consente di controllare se i database definiti dall'utente vengono configurati utilizzando le stesse regole di confronto di quelle per i database master e modello.

Procedure consigliate

È consigliabile fare in modo che le regole di confronto dei database definiti dall'utente corrispondano a quelle dei database master e modello. In caso contrario, possono verificarsi conflitti relativi alle regole di confronto che potrebbero impedire l'esecuzione del codice. Ad esempio, quando una stored procedure crea un join tra una tabella e una tabella temporanea, SQL Server potrebbe terminare il batch e restituire un errore di conflitto tra regole di confronto se le regole di confronto del database definito dall'utente differiscono da quelle del database model. Questo problema si verifica perché le tabelle temporanee vengono create in tempdb, che basa le proprie regole di confronto su quelle del modello.

In caso di errori di conflitto tra regole di confronto, considerare una delle soluzioni seguenti:

  • Esportare i dati dal database utente e importarli nelle nuove tabelle che utilizzano le stesse regole di confronto dei database master e modello.

  • Ricompilare i database di sistema in modo che vengano utilizzate regole di confronto corrispondenti a quelle del database utente. Per altre informazioni su come ricompilare i database di sistema, vedere Ricompilare i database di sistema.

  • Modificare qualsiasi stored procedure che crea join tra tabelle utente e tabelle in tempdb per creare le tabelle in tempdb utilizzando le regole di confronto del database utente. A tale scopo, aggiungere la clausola COLLATE database_default alle definizioni di colonna della tabella temporanea, come illustrato nell'esempio seguente:

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

Ulteriori informazioni

Impostare o modificare le regole di confronto del database

Impostare o modificare le regole di confronto delle colonne

ALTER DATABASE (Transact-SQL)

COLLATE (Transact-SQL)

sys.databases (Transact-SQL)

Articolo di Microsoft Knowledge Base 325335

Procedura: Installazione di SQL Server 2008 dal prompt dei comandi

Vedere anche

Monitorare e applicare le procedure consigliate tramite la gestione basata su criteri