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 regole di confronto corrispondenti a quelle per il database master o model.

Procedure consigliate

È consigliabile fare in modo che le regole di confronto dei database definiti dall'utente corrispondano a quelle del database master o model. In caso contrario, possono verificarsi conflitti relativi alle regole di confronto che potrebbero impedire l'esecuzione del codice. Quando, ad esempio, tramite una stored procedure viene creato un join tra una tabella e una tabella temporanea, in SQL Server il batch potrebbe venire terminato e potrebbe venire restituito 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 in quanto le tabelle temporanee vengono create in tempdb, le cui regole di confronto sono basate su quelle del database model.

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

  • Esportare i dati dal database utente e importarli in nuove tabelle in cui vengono utilizzate le stesse regole di confronto dei database master e model.

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

  • Modificare le stored procedure tramite cui vengono creati join tra le tabelle utente e le tabelle in tempdb in modo che le tabelle in tempdb vengano create 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 325335 della Microsoft Knowledge Base

Procedura: Installazione di SQL Server 2008 dal prompt dei comandi

Vedere anche

Concetti

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