fatz Geschrieben 13. Dezember 2008 Geschrieben 13. Dezember 2008 hi, mache gerade meine ersten schritte mit sql 2005 und bin mir nicht sicher ob folgendes funktioniert: SET @query = 'SELECT * FROM ' + @table_name IF EXISTS (EXEC(@query)) Der Server erzählt mir etwas von falscher syntax. Ich kann mir eigentlich nicht vorstellen, dass diese konstruktion grundsätzlich nicht funktioniert.... was meint ihr?
spix Geschrieben 13. Dezember 2008 Geschrieben 13. Dezember 2008 hi, mache gerade meine ersten schritte mit sql 2005 und bin mir nicht sicher ob folgendes funktioniert: SET @query = 'SELECT * FROM ' + @table_name IF EXISTS (EXEC(@query)) Der Server erzählt mir etwas von falscher syntax. Ich kann mir eigentlich nicht vorstellen, dass diese konstruktion grundsätzlich nicht funktioniert.... was meint ihr? Bin zwar auch blutiger Anfänger, aber heißt das net: select * from table_name ? Ich meine ohne dem " ' ' " und ohne @.
fatz Geschrieben 13. Dezember 2008 Autor Geschrieben 13. Dezember 2008 @table_name ist eine variable. die zeile mit SET baut einen string zusammen, der später ausgeführt werden soll.
spix Geschrieben 13. Dezember 2008 Geschrieben 13. Dezember 2008 @table_name ist eine variable. die zeile mit SET baut einen string zusammen, der später ausgeführt werden soll. Dann probiers doch einfach in der Testumgebung aus.
fatz Geschrieben 13. Dezember 2008 Autor Geschrieben 13. Dezember 2008 ich sagte doch, dass der server etwas von falscher syntax schreibt, wenn ich das kommando absetze. der befehl ist aber so klein, dass man an der syntax nicht viel falsch machen kann ... ich weiß eben nur nicht ob eine solche konstruktion mit IF EXISTS und dem EXEC überhaupt möglich ist
dr.dimitri Geschrieben 13. Dezember 2008 Geschrieben 13. Dezember 2008 Hi, SQL ist eine mengenorientierte Abfragesprache und keine Programmiersprache. Wenn Du wissen möchtest, ob in der Tabelle Einträge sind, dann verwende die COUNT Funktion ggf. mit der TOP Klausel. In T-SQL oder PL/SQL muss das Ergebnis eines SQLs immer auch irgendwo abgespeichert werden. Einfach ein SQL ausführen funktioniert nicht. Du musst einen explizieten oder Implizieten Cursor verwenden, damit die DB auch weiß wohin denn das Ergebnis abgelegt werden soll. mache gerade meine ersten schritte mit sql 2005 Mein Rat: Such dir ein Tutorial im Internet oder besser noch besorg dir ein gutes Buch über den SQL Server (die Bewertungen bei amazon helfen bei der Auswahl). Ansonsten dürften sich deine Ersten Schritte unnötig schwerer als nötig gestalten. Den Kaufpreis des Buches kannst übrigends von der Steuer absetzen (evtl. ist noch eine Bestätigung des AG nötig). Dim
Amstelchen Geschrieben 16. Dezember 2008 Geschrieben 16. Dezember 2008 die im OP angegebene syntax ist erstens flasch, zweitens sinnlos. wozu sollte man ein mittels EXE ausgeführtes SELECT-ergebnis auf EXISTS überprüfen wollen? wenn du die anzahl des abfrageergebnisses haben willst, verwende anschliessend ROWCOUNT: SELECT @RowCount = @@ROWCOUNT s'Amstel
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden