您的位置:首页 > 数据库

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

2015-09-04 16:23 393 查看
以下存储过程主要实现对某表新增一条数据的同时写入日志表

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">  AS
declare  @時間  DATETIME =getdate()
declare @表單ID INT
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRANSACTION

insert 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>0
BEGIN
ROLLBACK TRANSACTION
RAISERROR('请提交有效数据!',16,1)
RETURN 0
END

ELSE
COMMIT TRANSACTION  --执行未成功进行回


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: