Announcement

Collapse
No announcement yet.

"Syntaxfehler in der Nähe von..."

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "Syntaxfehler in der Nähe von..."

    hallo alle zusammen,

    erst seit kurzem benutze ich den SQL Server 2005. meine Proceduren sind vorher auf dem SQL Server 2000 immer gut durchgelaufen und haben funktioniert, doch jetzt weiss ich mir keinen Rat mehr.
    Was ist daran falsch??:

    if exists (select count(*) from journal )
    begin
    print 'test'
    if exists ( select * from sysobjects where name = 'mwstjournal' )
    begin
    drop procedure mwstjournal
    print 'test1'
    end

    create procedure test
    as
    declare @test varchar(10)

    select @test='hallo'
    print @test

    end


    Ich weiss nicht mehr weiter. Andauernd kommt "Syntaxfehler in der Nähe von dem Schlüsselwort "procedure""
    Ich hab schon in der hilfe des SQL Servers geschaut und auch das Internet abgegrast ich hab nichts gefunden.
    Seh ich den Wald vor lauter bäumen nicht mehr?

    Kann mir jemand von Euch helfen...bitte bitte bitte

    Tschüssi

  • #2
    Hallo!

    Also das Beispiel verkraftet auch der 2000er Server nicht...
    Auszug aus der Hilfe
    "Die CREATE PROCEDURE-Anweisung kann nicht mit anderen Transact-SQL-Anweisungen in einem einzigen Batch kombiniert werden."

    BYE BERND

    Comment


    • #3
      Hallo Anja,

      der Vorredner hat genau Recht. CREATE PROCEDURE muss der erste Befehl in einem Batch sein. Die Lösung ist aber recht einfach - exec()!
      Code:
      if exists (select count(*) from journal )
      begin
      print 'test'
      if exists ( select * from sysobjects where name = 'mwstjournal' )
      begin
      	drop procedure mwstjournal
      	print 'test1'
      end
      
      exec(
      '
      create procedure test --oder soll das mwstjournal sein?
      as
      declare @test varchar(10)
      
      select @test=''hallo''
      print @test
      
      end
      '
      Man kommt also leider an diesen Stellen nicht um die etwas unschöne Zeichenkettenerstellung herum. Nicht vergessen die Hochkommata zu verdoppeln .

      Gruß
      Olaf

      Comment

      Working...
      X