Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

TSQL - utwórz przechowywany proc wewnątrz wyciągu transakcji

spróbuj wykonać create procedure w EXEC('...') , tak:

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

    -- create a stored proc
  EXEC ('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

GO


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tworzenie niestandardowego obrazu dockera SQL Server na oficjalnym obrazie

  2. Jak mogę uzyskać konkretną porcję wyników?

  3. Co to są blokady wierszy, stron i tabel? A kiedy zostaną nabyte?

  4. SQL Server DOWOLNY operator wyjaśniony

  5. Jaki jest odpowiednik LOCK_ESCALATION =TABLE w SQL Server 2005?