Ho creato un progetto di database SQL Server in Visual Studio 2013 e ho importato un DACPAC estratto da un database di produzione. Quando ho provato a creare il progetto ottengo centinaia di errori SQL71501 e SQL71561 (entrambi sono "riferimento non risolto a un oggetto"). Esaminando gli script il problema è che molte viste e stored procedure usano tre nomi di parte: [database]. [Schema]. [Oggetto].Riferimenti non risolti allo stesso database Progetto
Sembra che Visual Studio 2013 lanci questo errore ogni volta che incontra un nome in tre parti che include il database rappresentato dal progetto del database. Ad esempio, se il progetto di database rappresenta il database "MyDatabase" e uno script SQL in quel progetto include qualcosa come SELECT t.Column1 FROM MyDatabase.dbo.MyTable t
, quindi VS 2013 lancia SQL71501 o SQL71561 quando costruisco il progetto.
Esiste un modo per sopprimere errori di riferimento non risolti che si applicano solo al database corrente? Voglio comunque che Visual Studio generi errori per riferimenti non risolti a database esterni.
MODIFICA, Correzione: Originariamente indicato il codice di errore era SQL71501. Tuttavia, Visual Studio genera errori SQL71501 e SQL71561 per i riferimenti non risolti allo stesso database.
Mi chiedo anche questo. Ho trovato qualcosa che sembrava funzionare, ma poi ho avuto tutti i tipi di errori di compilazione. Solo il successo che ho avuto è la rimozione della denominazione in 3 parti da tutti i proc, le viste e le funzioni per lo stesso database. È relativamente facile da trovare se si limita ai file di tipo * .sql e si include il nome dello schema, ma sembra che ci dovrebbe essere un modo migliore. –
@PeterSchott: ho trovato un precedente post Stackoverflow che sembra confermare la rimozione di 3 nomi di parti è l'unica soluzione: http://stackoverflow.com/questions/19153996/ssdt-unresolved-reference-error-sql71561. La domanda include un collegamento a un vecchio blog MSDN che sembra confermare che non possiamo usare nomi a 3 parti nei progetti di database SSDT e l'unica soluzione è rimuovere il nome del database ovunque venga visualizzato. (Osservo anche i collegamenti nel punto di risposta a quello che presumo sia il tuo blog!) Il post sul blog di MSDN ha 5 anni e sono deluso dal fatto che non abbiano risolto questo problema nelle versioni successive. –
Beh, come ho detto che ho avuto _partial_ successo. Sembrava fantastico fino a quando non ho costruito e ho scoperto che molte altre cose ora lanciavano errori. Sono d'accordo che è deludente. –