Risoluzione dei problemi relativi al confronto di schemi
In questo argomento vengono presentati i problemi che possono verificarsi quando si confrontano due schemi di database.
Dipendenze e script di aggiornamento
Per generare l'ordine corretto degli oggetti in uno script di aggiornamento, in Confronto schema vengono esaminate le dipendenze degli oggetti. Se ad esempio una visualizzazione dipende da una tabella, è necessario creare quest'ultima prima della visualizzazione. Se l'oggetto che dipende dal secondo oggetto non utilizza un nome di schema completo, è possibile che la dipendenza non venga identificata e che l'ordine delle istruzioni nello script di creazione o aggiornamento sia errato. Questa differenza può essere causa di errori durante l'aggiornamento di una destinazione in base a un'origine o la distribuzione di modifiche in un database. Questo problema riguarda anche gli script di compilazione di database.
Nota
Per ovviare a questo problema, verificare di utilizzare nomi di schema completi per oggetti interessati da relazioni di dipendenza. Nell'esempio riportato di seguito, per garantire che la dipendenza venga identificata correttamente occorre modificare la fine dell'istruzione in modo che faccia riferimento a [dbo].[KeysTable] anziché a KeysTable:
CREATE VIEW [NewUser].[ViewReferencingScalarFunction] AS SELECT Column2, dbo.SimpleMultiplyParamByTwo(PK_Column) AS [Function] FROM KeysTable
Opzioni di tabelle e indici
Con la funzione Confronto schema non è possibile eseguire confronti né generare script per le opzioni impostate utilizzando sp_tableoption o sp_indexoption. Per questo problema non sono disponibili soluzioni.
Timeout durante il confronto di database di grandi dimensioni
Se si verifica un errore di timeout durante il confronto degli schemi di database di grandi dimensioni, potrebbe essere necessario aumentare il valore di timeout. Questa opzione non è disponibile tramite l'interfaccia utente. È necessario modificare il valore espresso in secondi di QueryTimeoutSeconds, memorizzato nel Registro di sistema nella chiave HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\VSTSDB\Database. Per impostazione predefinita, il timeout è di 60 secondi.
Confronto di file e gruppi di file
Se un gruppo di file in un database di destinazione è di sola lettura, tale proprietà sarà visualizzata sempre come una differenza in un confronto dello schema tra tale database e un progetto di database. Inoltre, il gruppo di file principale viene ignorato quando si confrontano degli schemi.
Se, inoltre, si tenta di sincronizzare due database nello stesso server, possono verificarsi problemi durante la sincronizzazione dei file e filestream secondari. È possibile risolvere questi problemi escludendo i filegroup e i file durante la sincronizzazione.
Vedere anche
Attività
Procedura: modificare gli oggetti di database
Procedura: confrontare gli schemi di database
Procedura: confrontare e sincronizzare i dati di due database