2017-06-30 2 views
0

Wenn auf meinem SQL Server das folgende Skript ausführen:Ansicht Statement auf SQL Server gibt "Invalid Object Name"

CREATE VIEW joiny AS 
SELECT EventTime 
FROM [dbo].[Table_1] 

bekomme ich folgende Fehlermeldung:

Invalid object name 'Table_1'. 

ich kann nicht herausfinden, warum diese ist ein Fehler. Kann mir jemand in die richtige Richtung zeigen? Ich habe es mit und ohne [] sowie mit dem "dbo" versucht.

+1

Was passiert, wenn Sie 'SELECT EventTime FROM [dbo]. [Table_1]' ausführen? –

+0

Tabelle_1' existiert nicht in der Datenbank und im Schema, das Sie verwenden – Lamak

+0

Dies würde anzeigen, dass "Table_1" nicht existiert. Bist du sicher, dass es so ist? Und im "dbo" Schema? – pmbAustin

Antwort

0

Dieser Fehler kann dazu führen, dass die Tabelle [dbo].[Table_1] in der von Ihnen verwendeten Datenbank einfach nicht existiert.

CREATE VIEW tabtest 
AS 
SELECT * 
FROM dbo.TabTest 

Ergebnisse in:

Msg 208, Level 16, State 1, Procedure tabtest, Line 4 Invalid object name 'dbo.TabTest'.

Weil ich keine Tabelle dbo.tabtest in meiner Datenbank mit dem Namen \

Wenn Sie eine Ansicht in einer anderen Datenbank als die versuchen, zu erstellen. wo Ihre Tabelle existiert, dann müssen Sie die 3-teilige Benennung verwenden, wenn Sie die Tabelle wie folgt angeben:

CREATE VIEW joiny AS 
SELECT EventTime 
FROM [MyDatabaseName].[dbo].[Table_1] 
+0

irgendwie funktioniert dies aber:.. SELECT TOP (1000) [Abstand] , [Eventtime] [DeviceId] FROM [dbo] [Table_1] –

+0

Wahrscheinlich. Sie ändern den Kontext irgendwie, ohne es zu merken. Wenn es also funktioniert, befinden Sie sich in einer Datenbank, in der diese Tabelle existiert, und wenn Sie nicht in einer anderen Datenbank sind. –

+0

Wie viele Abfragefenster haben Sie geöffnet? Beide wählen Top 1000 & create view lief im gleichen Fenster? Möglicherweise unterschiedliche Verbindungen oder Zieldatenbank in verschiedenen Fenstern. –