Risoluzione dei problemi relativi al confronto di schemi
Aggiornamento: novembre 2007
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 vista dipende da una tabella, è necessario creare quest'ultima prima della vista. 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 discordanza può essere causa di errori durante l'aggiornamento di una destinazione in base a un'origine o durante la distribuzione di modifiche in un database. Questo problema riguarda anche gli script di generazione di database.
![]() |
---|
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
Chiavi simmetriche, chiavi asimmetriche e certificati
In Visual Studio Team System Database Edition non è possibile creare chiavi simmetriche, asimmetriche o certificati come oggetti di database. Quando si importa uno schema di database, nello script pre-distribuzione vengono inseriti commenti segnaposto con i nomi delle chiavi e dei certificati. È necessario modificare lo script pre-distribuzione per creare tali oggetti. Analogamente, quando si confrontano schemi di database, nello Script di aggiornamento schema non sono contenuti i comandi T-SQL (Transact-SQL) necessari per creare chiavi simmetriche, chiavi asimmetriche o certificati mancanti. È necessario esportare lo script di aggiornamento nell'editor e aggiungere istruzioni per creare tali oggetti. Per ulteriori informazioni sulle istruzioni T-SQL (Transact-SQL), vedere Guida di riferimento a Transact-SQL (Transact-SQL).
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 in corrispondenza della chiave HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\DBPro\Databaseand. 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.
Vedere anche
Attività
Procedura: modificare gli oggetti di database
Procedura: visualizzare le differenze dei dati