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 --执行未成功进行回滚
相关文章推荐
- SQLite学习笔记(15)-B-tree(1)
- MySQL数据库入门
- SQLite学习笔记(14)-虚拟机
- 修改mysql主键的值为自增
- mysql更新记录时设置自动更新时间戳
- 怎么重置mysql的自增列AUTO_INCREMENT初时值
- SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接
- mysql嵌套关联查询
- 2015年阿里云9折优惠码,适用范围:主机(ECS)、云存储(OSS)、云数据库RDS等等
- 使用Spark SQL 探索“全国失信人数据”
- 详解Oracle DELETE和TRUNCATE 的区别(摘)
- mysql日志管理
- Oracle 模式
- mysqladmin创建MySQL数据库
- mysql解压版安装步骤
- SQL Server 多种分页查询效率
- Oracle EBS MRP模块之预测冲减
- mysql默认事物隔离级别实践
- MySQL 实现树形的遍历(关于多级菜单栏以及多级上下部门的查询问题)
- mysql多表连接