2012-11-14 13 views
32

Ho creato il progetto del database SQL Server in VS 2012 & importato il nostro database. Quando costruisco il progetto, ottengo molti errori "riferimento non risolto all'oggetto". Questi errori sono solo per alcune visualizzazioni che ho nel mio database. La sintassi per queste viste è corretta & Non sto utilizzando le tabelle temporanee. Cosa devo controllare per risolvere questo problema?Progetto database VS 2012 "riferimento non risolto all'oggetto" Errore

UPDATE: Questo è un esempio:

CREATE view [Factory].[NonStartedOrders] 
as 
SELECT 

"Customers"."CustomerName", "Customers"."CustomerAName", 
"Customers"."MarketID", 
"Orders"."OrderID", 
"Orders"."ApproveDate", 
"FactoryOrders"."FactoryID", 
"FactoryOrders"."EstEndDate", 
"FactoryOrders"."StatusID", 
"FactoryOrders"."TotalWeight", 
"Karats"."KaratEName" 

FROM (("Taiba"."Sales"."FactoryOrders" "FactoryOrders" 
INNER JOIN "Taiba"."Sales"."Orders" "Orders" ON "FactoryOrders"."OrderID"="Orders"."OrderID") 
INNER JOIN "Taiba"."General"."Customers" "Customers" ON "Orders"."CustomerID"="Customers"."CustomerID") 
INNER JOIN "Taiba"."MasterPiece"."Karats" "Karats" ON "Orders"."MKaratID"="Karats"."KaratID" 

"Taiba" ecco il mio nome del database. Ho solo 30 errori per questa vista. Questi sono alcuni errori di loro:

Error 217 SQL71561: View: [Factory].[NonStartedOrders] has an unresolved reference to object [Taiba].[Sales].[FactoryOrders] 

Error 219 SQL71561: View: [Factory].[NonStartedOrders] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [Taiba].[Sales].[FactoryOrders].[FactoryOrders]::[OrderID], [Taiba].[Sales].[FactoryOrders].[OrderID] or [Taiba].[Sales].[Orders].[FactoryOrders]::[OrderID]. 
+1

Fase uno: mostra un esempio di una delle viste, e il errore specifico. Inoltre, tieni presente che solo perché il database "funziona", non significa che non hai errori reali e avvisi che non sapevi prima. –

+0

Ho aggiornato la domanda con un esempio. –

risposta

20

ho risolto questo problema.

Sembra alcuni dei miei punti di vista/SP ha fatto riferimento alle tabelle che utilizzano questa convenzione di denominazione (3 parti nome qualificato):

DatabaseName.SchemaName.TableName

ho cambiato tutti i riferimenti per essere come la seguente :

SchemaName.TableName

+3

Nel caso in cui qualcuno veda questo errore e quanto sopra non lo fa per te ... c'è anche una possibilità che vedrai questo errore se hai un progetto VS DB e le colonne a cui ti riferisci nell'oggetto dove l'errore esiste non corrisponde alle definizioni di tabella che hai controllato in TFS (a differenza delle colonne effettive). HTH. –

+1

grazie per avermi salvato un mal di testa ragazzi – pqsk

+0

Questa è la soluzione alternativa che mi è venuta in mente, ma non definirei esattamente una soluzione se si tocca il codice per centinaia di oggetti di database. – cdonner

12

nel mio caso, la funzione che non poteva essere trovato era di Build Action = Nessuno e così è stato non essere inclusa nel comp ile.

Modifica dell'azione di creazione su Correzione corretta.

+1

Questo ha funzionato per me, grazie per aver salvato la mia giornata – mmssaann

+0

Ciò significa che non stai effettivamente compilando il file. –

+0

Ha funzionato per me, grazie – szaman

34

Un'altra possibilità è che lo schema utilizzato nella vista/tabella ecc non esiste nel progetto. Potrebbe essere necessario aggiungere lo schema al VS Database Project.

fare clic destro del progetto e Add > New Item > Schema

+1

Questo è esattamente quello che stavo cercando. – K0D4

+0

Grazie per questo - sto costruendo manualmente un progetto di database per un Data Warehouse SQL di Azure solo per il controllo del codice sorgente e questo è esattamente ciò di cui avevo bisogno –

+0

Assicurati di aggiungere un file di tipo schema. Se aggiungi un file di tipo 'script' (un file normale con estensione .sql) in cui crei lo schema, il problema di riferimento non risolto persisterà – DiederikTiemstra

0

Prova definire esplicitamente la classe:

classe: Specifica la classe di protezione diretta su cui il permesso è essere concesso. Il qualificatore di ambito :: è richiesto.

Continua a leggere la documentazione sulla dichiarazione SQL GRANT: http://technet.microsoft.com/en-us/library/ms187965.aspx

Nel mio caso ho avuto un User Defined Type Table.

GRANT EXECUTE ON TYPE::[dbo].[MessageTableType] TO [PostOffice_Role]; 
6

Questo è accaduto a me, quando la costruzione di una CTE in Visual Studio 2015. Ho cambiato la Build Action per compilare e gli errori se ne andarono.

  1. Selezionare il file (s) con l'errore
  2. Premere F4 per visualizzarne le proprietà.
  3. Selezionare 'Compila' nell'elenco a discesa Azione di compilazione.

Spero che questo aiuti qualcuno.

+0

. L'ho provato. In realtà gli errori sono andati via, ma il confronto dello schema è più che rotto. Non riconosce più la struttura all'interno del progetto .... – AXMIM

0

Si riceverà anche questo errore quando si aggiunge una tabella (utilizzando il file sql) e se non si check-in file .sqlproj

Problemi correlati