ALTER PROCEDURE [dbo].[YK_TelType_Edit]   
@ID INT,
@OrderID INT,
@PhoneNumber nvarchar(50),
@FilialeID int,
@Res NVARCHAR(max),
@Inputer NVARCHAR(50)
AS
BEGIN
BEGIN TRAN
begin try
DECLARE @TelTypeID INT
UPDATE YK_TelType 
SET [OrderID]=@OrderID,[PhoneNumber]=@PhoneNumber,FilialeID=@FilialeID,[Res]=@Res 
WHERE [ID]=@ID
SET @TelTypeID = SCOPE_IDENTITY()
INSERT INTO YK_TelType_Log 
([TelTypeID],[OrderID],[PhoneNumber],[FilialeID],[Res],[Inputer],[Oper]) 
VALUES(@ID,@OrderID,@PhoneNumber,@FilialeID,@Res,@Inputer,'修改操作')
SELECT 1
end try
begin catch
rollback tran
select 0
end catch
COMMIT TRAN
END
上面的代码是我的存储过程,我对事务和try...catch的应用对吗?

解决方案 »

  1.   

    http://msdn.microsoft.com/zh-cn/library/ms179296(SQL.90).aspx
      

  2.   


    BEGINBEGIN TRY
    BEGIN TRAN
            
            DECLARE @TelTypeID INT
            UPDATE YK_TelType 
            SET [OrderID]=@OrderID,[PhoneNumber]=@PhoneNumber,FilialeID=@FilialeID,[Res]=@Res 
            WHERE [ID]=@ID
            SET @TelTypeID = SCOPE_IDENTITY()
            INSERT INTO YK_TelType_Log 
            ([TelTypeID],[OrderID],[PhoneNumber],[FilialeID],[Res],[Inputer],[Oper]) 
            VALUES(@ID,@OrderID,@PhoneNumber,@FilialeID,@Res,@Inputer,'修改操作')
            SELECT 1
    COMMIT TRAN
    END TRYbegin catch
         rollback tran
    end catch
        
    END