TSQL - erstellen Sie eine gespeicherte Prozedur innerhalb einer Transaktion-Anweisung

Habe ich ein sql-Skript, das set roll-Produktion. Ich umwickelt habe die verschiedenen Projekte, die in separaten Transaktionen. In jedem der Geschäfte, die wir erstellten gespeicherten Prozeduren. Ich bin immer Fehlermeldungen

Msg 156, Level 15, State 1, Line 4
Falsche syntax bei das Schlüsselwort 'return'.

Habe ich das Beispiel-Skript zur Veranschaulichung

Begin Try
Begin Transaction 
    -- do a bunch of add/alter tables here
    -- do a bunch of data manipulation/population here

    -- create a stored proc
  create procedure dbo.test
  as
  begin
    select * from some_table
  end
Commit  
End Try
Begin Catch
    Rollback  
    Declare @Msg nvarchar(max)
    Select @Msg=Error_Message();
    RaisError('Error Occured: %s', 20, 101,@Msg) With Log;
End Catch

Der Fehler scheint zu implizieren, dass kann ich nicht erstellen gespeicherte Prozeduren innerhalb der Transaktion, aber ich bin nicht auf der Suche nach einem docs, die etwas anderes sagen(vielleicht google nicht freindly heute).

ist das für sql-server?
ja, sorry, ich sollte erwähnt haben, dass. sql 2008.
Ich beschloss, ziehen Sie die create proc aus der Transaktion & try/catch-in einen eigenen Abschnitt. Habe ich in eine "wenn vorhanden, dann drop" - Anweisung und fügte hinzu, "wenn es existiert, dann drucken Nachricht" - Statements(s) um die gespeicherte Prozedur Schöpfung. Danke für das feedback, ich lernte etwas von ihm.

InformationsquelleAutor Chris L | 2010-04-26

Schreibe einen Kommentar