SQL存储过程+事务 常用实例

来源:互联网 发布:达芬奇14mac怎么改中文 编辑:程序博客网 时间:2024/05/01 09:08

以下存储过程主要实现对某表新增一条数据的同时写入日志表

CREATE PROCEDURE [dbo].[MJ_SZPG]@發文日期  DATE  ,@拋光人員    NVARCHAR (50) ,@拋光機台    NVARCHAR (50) ,        @拋光時間    NVARCHAR (50) ,@請求      INT          ,@遞送速度    INT           ,@試做工單號   NVARCHAR (50),@主旨      NVARCHAR (50) ,@目的      INT          ,@狀態      INT,        @人員工號 NVARCHAR (20),        @姓名   NVARCHAR (20),        @記錄信息 NVARCHAR (200),                  @行為類型 NVARCHAR (50)  ,        @備註   NVARCHAR (50), @ReturnValue INT output--页面传参时注意标记  para[15].Direction = ParameterDirection.Output; 
<pre class="sql" name="code">  ASdeclare  @時間  DATETIME =getdate()declare @表單ID INT SET NOCOUNT ON;SET XACT_ABORT ON;BEGIN TRANSACTIONinsert into [dbo].[MJ_試做聯絡單](發文日期,拋光人員,拋光機台,拋光時間,請求,遞送速度,試做工單號,主旨,目的,狀態) values(@發文日期,@拋光人員,@拋光機台,@拋光時間,@請求,@遞送速度,@試做工單號,@主旨,@狀態)set @表單ID=(select top 1 ID from [dbo].[MJ_試做聯絡單] order by ID desc)insert into [dbo].[MJ_行為日誌](表單名稱,人員工號,姓名,記錄信息,時間,表單ID,行為類型,備註) values('MJ_試做拋光聯絡單',@人員工號,@姓名,@記錄信息,@時間,@表單ID,@行為類型,@備註)set @ReturnValue=@表單ID;IF @@ERROR>0BEGINROLLBACK TRANSACTIONRAISERROR('请提交有效数据!',16,1)RETURN 0ENDELSECOMMIT TRANSACTION  --执行未成功进行回


 

0 0
原创粉丝点击