2017-07-28 7 views
0

私はSQLに新しいですし、私は私が私の窓の中にこれらのストアドプロシージャと呼ばれる私はこのSQLのトランザクション

--to insert into instructor table-- 

create procedure [dbo].[insertInstructor] (@f_name varchar(50), @l_name varchar(50), @contact nvarchar(50)) 
AS 
BEGIN 
    begin transaction 
    save transaction insert_instructor 
    insert into instructor(f_name,l_name,contact) 
    values(@f_name,@l_name,@contact) 
END 


--to rollback the transaction i did this 
create procedure [dbo].[delete_instructor] 
AS 
BEGIN 
    begin transaction insert_instructor 
    rollback transaction insert_instructor 

END 

をしたように、SQLでのROLLBACK TRANSACTIONを使用していたアプリケーションのC#を形成します。 TIA

+0

あなたの質問がありますか? – Xedni

+0

それは正しいかどうか?それは私の窓の中で働いていないので、フォームアプリケーション – Faiq

+2

質問をする方法を読むhttps://stackoverflow.com/help/how-to-ask、トランザクションhttps://docs.microsoft.com/en-us/sql/t -sql/language-elements/transactions-transact-sql – Eric

答えて

0
CREATE PROCEDURE [dbo].[insertInstructor] (@f_name VARCHAR(50), @l_name VARCHAR(50), @contact NVARCHAR(50)) 
AS 
BEGIN 

BEGIN TRANSACTION 
DECLARE @flg_error INT 

    SET @flg_error = 0 

    INSERT INTO instructor(f_name,l_name,contact) 
    VALUES(@f_name,@l_name,@contact) 

    SET @flg_error = @@ERROR 

     IF @flg_error <> 0 BEGIN 
      RAISERROR ('1', 16, 1) 
      ROLLBACK TRANSACTION 

     END 

    COMMIT TRANSACTION 

END 
+0

IF条件を説明してください。 TIA – Faiq

+0

私がゼロに等しくないエラーを取得している場合は、トランザクションをロールバックして、それは常に私の仕事です –

関連する問題