Announcement

Collapse
No announcement yet.

Tabelle durchsuchen und prcedure aufrufen

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

  • Tabelle durchsuchen und prcedure aufrufen

    Hallo Leute,

    ich befasse mich noch nicht sehr lange mit MS SQL Server und SQL selber und hab noch eine Menge Probleme..

    Ich habe eine procedure unter 'SQL Server Management Studio' geschrieben, und möchte diese nun für bestimmte datensätze einer Tabelle aufrufen.
    Sollte etwa so aussehen, Pseudocode:

    While(Noch nicht am letzen Datensatz der Tabelle)
    if Datensatz.name='irgendwas'
    call procedure(Parmater 1, Parameter 2);
    Nächster Datensatz;

    ich hab einfach noch nicht verstanden wie ich meine Procedures aufrufen kann..
    danke für jede Hilfe ..

    Gruß insertcoin

  • #2
    Hallo,

    probier doch mal das folgende:
    Code:
    Declare cursor_name Cursor For
       Select Datensatz.name, Parameter 1, Parameter2 from Datensatz
       Where Datensatz.name="irgendwas":
    
    Declare @name nvarchar(100);
    Declare @parameter1 nvarchar(100);
    Declare @parameter2 nvarchar(100);
    
    Open cursor_name 
    Fetch next from cursor_name into @name, @parameter1, @parameter2
    
    While @@Fetch_Status=0
    Begin
      exec ProcName @parameter1, @parameter2
      Fetch next from cursor_name into @name, @parameter1, @parameter2
    End;
    Damit sollte dein Problem gelöst sein, ansonsten einfach weiter fragen :-)

    Gruß,
    Volker

    Comment


    • #3
      Hey Jostein,
      versteh das ganze zwar noch nicht ganz, aber ich glaube das ist genau das was ich gesucht habe..
      werd mir das jetzt mal anschaun, vielen Dank.

      Gruß insertcoin

      Comment


      • #4
        ich hab noch ein problem.. in folgendem code ..

        declare @variable int
        set @variable=500


        exec (' insert into Tabelle ([wert1], [wert2],[wert3])
        (select [wert1], ' + @variable + ', [wert2]
        from ...

        wenn ich die variable als wert einbinden möchte (rot), bekomme ich folgenden fehler:

        Incorrect syntax near ','.

        weiß jemand wie man das schreiben muss damit er das sauber einbindet??

        Comment


        • #5
          Originally posted by insertcoin View Post
          ich hab noch ein problem.. in folgendem code ..

          declare @variable int
          set @variable=500


          exec (' insert into Tabelle ([wert1], [wert2],[wert3])
          (select [wert1], ' + @variable + ', [wert2]
          from ...

          wenn ich die variable als wert einbinden möchte (rot), bekomme ich folgenden fehler:

          Incorrect syntax near ','.

          weiß jemand wie man das schreiben muss damit er das sauber einbindet??
          Da Exec einen String erwartet, sollte man die Int-Variable in einen String casten:


          exec (' insert into Tabelle ([wert1], [wert2],[wert3])
          (select [wert1], ' + CAST (@variable AS VARCHAR (20) + ' , [wert2]

          Comment


          • #6
            hmm .. ok danke ..
            da hätte ich eigentlich selber drauf kommen müssen .. aber ich bins irgendwie von anderen sprachen gewohtn dass man in die Ausgabebefehle alles reinstecken kann ..
            ist zwar was ganz anders hier, aber ich bin da irgendie auf dem schlauch gestanden .. ich versuch das mal ..

            Comment


            • #7
              wieder ein problem ..

              ich möchte folgenden pseudocode als sql befehl ausführen und bekomm nur müll mit dem was ich so verusche ..

              update tableA set tableA.wert1=tableB.wertI
              where tableA.wert2=tableB.wertII and tableA.wert2 > 666

              hoffe mir kann nochmal jemand helfen ..

              Comment


              • #8
                Hallo,

                Originally posted by insertcoin View Post
                wieder ein problem ..

                ich möchte folgenden pseudocode als sql befehl ausführen und bekomm nur müll mit dem was ich so verusche ..

                update tableA set tableA.wert1=tableB.wertI
                where tableA.wert2=tableB.wertII and tableA.wert2 > 666

                hoffe mir kann nochmal jemand helfen ..
                Bei deinem Update fehlt die From-clause:
                Code:
                UPDATE Table1
                SET Table1.wert1= Table2.wertI
                FROM Table1, Table2
                where Table1.wert2= Table2.wertII
                Noch eine weitere Anmerkung: du hast jetzt drei Probleme in einem
                Thread gefragt. Normalerweise sollten dafür jeweils neue Threads
                aufgemacht werden, damit andere, die dir helfen wollen, dein Problem
                an der Überschrift erkennen.

                Gruß,
                Volker

                Comment

                Working...
                X