none
SQL Server 2012 findet Tabellen nicht RRS feed

  • Frage

  • Hallo,

    ich nutze seit gestern den SQL Server 2012 mitsamt dem Management Studio. Wenn ich nun eine Test Tabelle anlegen mit entsprechenden Einträgen und diese nun via Abfrage aufrufen möchte:

    SELECT * FROM TestTabelle

    wird TestTabelle rot unterstrichen und wird nicht gefunden.

    die dbo dbo.TestTabelle ist aber vorhanden.

    Zudem bin ich auch Youtube Tutorial gefolgt, was bei mir leider nicht funktioniert.

    Wo ist der Fehler ?

    Dienstag, 6. August 2013 12:24

Antworten

  • wird TestTabelle rot unterstrichen und wird nicht gefunden.


    Das ist bloss IntelliSense, die Dir den Tabellennamen als vermeintlich fehlend mit einer roten Linie markiert, weiter nichts. Wenn Du eine neue Tabelle anlegst, bekommt IntelliSense das nicht sofort mit. Einfach ignorieren, oder übers Menu "Bearbeiten" => "IntelliSense" => "Refresh Local Cache" aufrufen, nach ein paar Sekunden ist dann die neue Tabelle bekannt und die Markierung wird aufgehoben.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 7. August 2013 06:23

Alle Antworten

  • Bist Du mit der richtigen Datenbank im SQL Server verbunden?

    Versuch mal ein

    Use MeineDatenbank;
    vorweg.

    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Dienstag, 6. August 2013 12:30
    Beantworter
  • Ist die Tabelle im Objekt-Explorer zu sehen?

    Dienstag, 6. August 2013 12:32
  • Ist die Tabelle im Objekt-Explorer zu sehen?

    Ja ist sie
    Dienstag, 6. August 2013 12:38
  • Bist Du mit der richtigen Datenbank im SQL Server verbunden?

    Versuch mal ein

    Use MeineDatenbank;
    vorweg.

    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - 


    Hab ich probiert, aber leider ohne erfolg
    Dienstag, 6. August 2013 12:52
  • Rechte Maustaste auf die Tabelle und die obersten 1000 Sätze anzeigen lassen.

    Dann sollte die Verbindung richtig stehen und das SQL zu sehen sein.


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Dienstag, 6. August 2013 13:00
    Beantworter
  • Rechte Maustaste auf die Tabelle und die obersten 1000 Sätze anzeigen lassen.

    Dann sollte die Verbindung richtig stehen und das SQL zu sehen sein.


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP -

    funktioniert nicht, es wird dann folgendes aufgelsitet:

    /****** Skript für SelectTopNRows-Befehl aus SSMS ******/
    SELECT TOP 1000 [ID]
          ,[FirstName]
          ,[LastName]
          ,[Adresse1]
          ,[Adresse2]
          ,[City]
          ,[PostalCode]
          ,[Province]
          ,[Salary]
          ,[Age]
          ,[Department]
      FROM [Testdatebank.[dbo].[TestTabelle]

    allerdings alles in den eckigen Klammern ist rot unterstrichen und beim Ausführen passiert nichts.

    Dienstag, 6. August 2013 13:17
  • Gib mal
    Select getdate()
    ein und drücke F5.

    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Dienstag, 6. August 2013 13:37
    Beantworter
  • Gib mal
    Select getdate()
    ein und drücke F5.

    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP -


    dann zeigt er mir das heutige Datum samt Uhrzeit an
    Dienstag, 6. August 2013 13:47
  • Aber ein

    Select *
    FROM [Testdatebank.[dbo].[TestTabelle]

    mit F5 zum ausführen bringt gar nichts? Keine Meldung, keine Reaktion?

    Welche Rechte hat der angemeldete User?


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Dienstag, 6. August 2013 13:56
    Beantworter
  • Aber ein

    Select *
    FROM [Testdatebank.[dbo].[TestTabelle]

    mit F5 zum ausführen bringt gar nichts? Keine Meldung, keine Reaktion?

    Welche Rechte hat der angemeldete User?


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - 

    genau, das folgt zu gar nichts. Es sind keine Adminrechte für den User vorhanden, liegt es vll daran ?
    Dienstag, 6. August 2013 14:04
  • Was liefert denn ein:

    Use MeineDatenbank;
    SELECT * FROM sys.tables
    GO

    select * from sys.columns where object_id = OBJECT_ID('dbo.TestTabelle')

    ?


    Andreas Wolter | Microsoft Certified Master SQL Server
    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com

    Dienstag, 6. August 2013 23:03
  • wird TestTabelle rot unterstrichen und wird nicht gefunden.


    Das ist bloss IntelliSense, die Dir den Tabellennamen als vermeintlich fehlend mit einer roten Linie markiert, weiter nichts. Wenn Du eine neue Tabelle anlegst, bekommt IntelliSense das nicht sofort mit. Einfach ignorieren, oder übers Menu "Bearbeiten" => "IntelliSense" => "Refresh Local Cache" aufrufen, nach ein paar Sekunden ist dann die neue Tabelle bekannt und die Markierung wird aufgehoben.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 7. August 2013 06:23
  • wird TestTabelle rot unterstrichen und wird nicht gefunden.


    Das ist bloss IntelliSense, die Dir den Tabellennamen als vermeintlich fehlend mit einer roten Linie markiert, weiter nichts. Wenn Du eine neue Tabelle anlegst, bekommt IntelliSense das nicht sofort mit. Einfach ignorieren, oder übers Menu "Bearbeiten" => "IntelliSense" => "Refresh Local Cache" aufrufen, nach ein paar Sekunden ist dann die neue Tabelle bekannt und die Markierung wird aufgehoben.

    Olaf Helper


    Edit: AH super jetzt funktioniert alles, also lags wohl einfach nur an IntelliSense das es noch nicht refreshed wurde, allerdings konnte ich den Fehler nicht ignorieren da bei Ausführung immer eine Fehlermeldung angezeigt wurde und nichts ausgeführt wurde.


    • Bearbeitet LandsHeer Mittwoch, 7. August 2013 06:41
    Mittwoch, 7. August 2013 06:37
  • allerdings konnte ich den Fehler nicht ignorieren da bei Ausführung immer eine Fehlermeldung angezeigt wurde und nichts ausgeführt wurde.

    Wenn Du eine Fehlermeldung bekommst, dann liegt das nicht an IntelliSense, sondern daran, das es die Tabelle in der Datenbank, mit der Du aktuell verbunden bist, wirklich nicht existiert.

    Du hast nicht zufällig die Datenbank mit einer Case Sensitive Collation angelegt und Dich im SQL Statement mit der Groß-/Kleinschreibung vertan?


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 7. August 2013 06:54
  • Dann würde ja das über das SSMS generierte Statement funktionieren. Es sollte schon an den Berechtigungen liegen.

    Warten wir die Antwort auf die Frage von Andreas ab. Das Skript zeigt, was der User wirklich sieht.


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Mittwoch, 7. August 2013 07:35
    Beantworter
  • funktioniert nicht, es wird dann folgendes aufgelsitet:

    /****** Skript für SelectTopNRows-Befehl aus SSMS ******/
    SELECT TOP 1000 [ID]
          ,[FirstName]
          ,[LastName]
          ,[Adresse1]
          ,[Adresse2]
          ,[City]
          ,[PostalCode]
          ,[Province]
          ,[Salary]
          ,[Age]
          ,[Department]
      FROM [Testdatebank.[dbo].[TestTabelle]

    allerdings alles in den eckigen Klammern ist rot unterstrichen und beim Ausführen passiert nichts.

    In diesem Statement fehlt eine schließende eckige Klammer hinter "FROM [Testdatebank".

    Es wundert mich aber sehr, dass das SSMS ein fehlerhaftes Script generiert..

    Mittwoch, 7. August 2013 08:43
  • Es sollte schon an den Berechtigungen liegen.

    Christoph, Wenn die SELECT Recht auf der Tabelle fehlen würde, hatte er mit 99% wahrscheinlich auch keine VIEW DEFINITION Rechte und ohne könnte er das Script nicht generieren lassen.

    Der Einwand von Phil passt aber auch gut und es wundert schon, das der Datenbank-Name auch leicht merkwürdig ist

    FROM [Testdatebank.[dbo].[TestTabelle]


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Mittwoch, 7. August 2013 08:56
  • Das könnte auch ein Fehler beim Editieren für das Forum gewesen sein. Ansonsten sollte zumindest diese Meldung kommen:

    Meldung 208, Ebene 16, Status 1, Zeile 1
    Invalid object name 'Testdatebank.[dbo.TestTabelle'.

    Aber die Frage ist berechtigt, ob hier auch der Client auf einem aktuellen Patch-Level ist. (2012 SP1)


    Einen schönen Tag noch,
    Christoph Muthmann
    Microsoft SQL Server MVP - Blog

    Mittwoch, 7. August 2013 08:58
    Beantworter
  • Ich denke da ist beim Kopieren etwas schiedgegangen.
    Für Object Not Found wird ein klarer fehler ausgworfen und nicht Nichts.

    Gleiches gilt bei Berechtigungsproblemen.

    Ich wundere mich daher über die Aussage, "beim Ausführen passiert nichts".

    Meinen Script noch mal leicht verbessert:

    Use MeineDatenbank;
    SELECT * FROM sys.tables
    where object_id = OBJECT_ID('dbo.TestTabelle')
    GO
    select * from sys.columns where object_id = OBJECT_ID('dbo.TestTabelle')

    Theoretisch kann man auch das "F5" verbiegen, das es wirklich nichts mehr tut.

    Daher um sicherzugehen den Knopf mit dem roten Ausrufezeichen und dem Wort "Ausführen" bzw "Execute" im englischen SSMS suchen

    Oder per Rechtsklick in das Fensterchen wo die Abfrage steht, und im DropDown dann dieses Icon suchen - sicherer gehts dann nicht :)


    Andreas Wolter | Microsoft Certified Master SQL Server
    Blog: www.insidesql.org/blogs/andreaswolter
    Web: www.andreas-wolter.com

    Mittwoch, 7. August 2013 08:58
  • Hallo,

    ist die Thematik abgeklärt?

    Wenn ja, bitte auch die Antworten markieren, die Dir geholfen haben. So dass auch andere davon profitieren können.

    Gruss,
    Raul


    Raul Talmaciu, MICROSOFT 
    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Mittwoch, 7. August 2013 14:14