2010-11-17 19 views
10

Ich habe ein MS-DataBase-Projekt in Visual Studio - nachdem ich einen Schemavergleich gemacht habe, versuche ich ein Bereitstellungsskript zu generieren, das Problem ist, dass ich Hunderte von nicht aufgelösten Verweisen Fehler z wie die folgenden zwei:Nicht aufgelöste Verweise in Microsoft Visual Studio SQL-Datenbankprojekt

Error 385 TSD03006: View: [auditing].[AuditedEntities] has an unresolved reference to object [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS]. D:\greatProject\Database\greatProject.Database\Schema Objects\Schemas\auditing\Views\AuditedEntities.view.sql 4 14 greatProject.Database 
Error 387 TSD03006: View: [auditing].[AuditedEntities] 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: [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS].[C]::[CONSTRAINT_NAME], [INFORMATION_SCHEMA].[REFERENTIAL_CONSTRAINTS].[CONSTRAINT_NAME] or [INFORMATION_SCHEMA].[TABLE_CONSTRAINTS].[C]::[CONSTRAINT_NAME]. D:\greatProject\Database\greatProject.Database\Schema Objects\Schemas\auditing\Views\AuditedEntities.view.sql 5 69 greatProject.Database 

Die SPROCS haben nie Probleme, wenn sie laufen. Gibt es einen schnellen und schmutzigen Weg, um das zu beheben? Vielleicht vielleicht, indem Sie referentielle Integritätsprüfungen vielleicht ausschalten?

Antwort

11

Ich habe einen Verweis auf die Master-Datenbank hinzugefügt, um diesen Fehler zu beheben, der durch die folgenden Schritte erreicht werden kann.

  1. Rechts klicken Referenzen unter dem Datenbank-Projekt
  2. Click Add Database Reference...
  3. Klicken Sie auf die `Datenbank-Projekt-Schema (.dbschema) Radiobutton
  4. Wechseln Sie zu dem

    C: \ Programme \ Microsoft Visual Studio 9.0 \ VSTSDB \ Erweiterungen \ SqlServer \ 2008 \ DBSchemas \ master.dbschema

  5. Klicken Sie auf OK

Die folgende Frage ist verwandt. ASP.NET Schema Tables Causing Issues in VSTS

+2

Diese Antwort funktionierte nicht für meine Umgebung (VS 2013); der beschriebene Weg existiert nicht. Die Antwort von stakx hat für mich funktioniert. –

21

In Ihrem Datenbankprojekt fehlt ein Verweis auf die Datenbank master.

Unter der Annahme, dass Sie über ein SQL Server Data Tools (SSDT) Datenbank-Projekt sprechen, können Sie den fehlenden Verweis hinzufügen wie folgt:

  1. In Mappen-Explorer, öffnen Sie das Kontextmenü auf den Referenzen Knoten und wählen Sie Datenbank hinzufügen Referenz ... davon:

    Add database reference via Solution Explorer

  2. Wählen Sie im oberen Teil des Eröffnungsdialogfelds die Option Systemdatenbank und wählen Sie master aus der Dropdown-Liste.

    Select the System database <code>master</code>

  3. Schließlich drücken Sie die OK Taste. Die Datenbankreferenz sollte jetzt zu Ihrem Projekt hinzugefügt werden.

+0

Das funktioniert. Die gleiche Antwort gibt Microsoft hier: https://connect.microsoft.com/SQLServer/feedback/details/787152/ssdt-intellisense-does-not-recognise-system-extended-procedures-like-sp-executesql-or -sp-xml-preciousocument –

+0

Was ist, wenn der Verweis auf eine andere vorhandene Datenbank ist, die ein eigenes Projekt außerhalb der Lösung hat? Wenn ich eine Referenz als .dacpac hinzufüge, wird die andere Datenbank ebenfalls aktualisiert? – Muflix

+0

@Muflix: Ich schlage vor, dass Sie dies als eine separate Frage veröffentlichen. – stakx