首页 > 代码库 > 1-0SBO学习心得(存储过程理论)
1-0SBO学习心得(存储过程理论)
一、原理:系统中每张单据在进行新增(A)、删除(D)、修改(U)、关闭(L)、取消(C)时都会触发数据库相应业务数据的更新,更新数据但不立刻commit,更新完数据后会先触发一个名为SBO_SP_TransactionNotification的存储过程,存储过程返回名为@error的参数,取1或者0。当返回0时表示正常,系统继续commit操作;当返回1时表示不正常,数据库回滚,操作无效。
该存储过程代码如下:
USE [DFKJ_TEST]GO/****** Object: StoredProcedure [dbo].[SBO_SP_TransactionNotification] Script Date: 06/28/2014 12:20:57 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc [dbo].[SBO_SP_TransactionNotification] @object_type nvarchar(20), -- SBO Object Type@transaction_type nchar(1), -- [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose@num_of_cols_in_key int,@list_of_key_cols_tab_del nvarchar(255),@list_of_cols_val_tab_del nvarchar(255)ASbegin-- Return valuesdeclare @error int -- Result (0 for no error)declare @error_message nvarchar (200) -- Error string to be displayedselect @error = 0select @error_message = N‘Ok‘---------------------------------------------------------------------------------------------------------------------------------- ADD YOUR CODE HERE---------------------------------------------------------------------------------------------------------------------------------- Select the return valuesselect @error, @error_messageEND
服务器会给这个存储过程传5个参数,分别是:
@object_type nvarchar(20), --操作的单据编号@transaction_type nchar(1),--操作类型 [A]dd, [U]pdate, [D]elete, [C]ancel, C[L]ose@num_of_cols_in_key int, --待操作数据表的主键个数@list_of_key_cols_tab_del nvarchar(255),--主键名称,如果有多个主键,以“;”分割@list_of_cols_val_tab_del nvarchar(255) --主键值,以“;”分割。
这是在这个存储过程中我们唯一能抓到的参数,控制逻辑就要运用到这些参数。
读代码可以发现默认情况下@error的取值是0,我们可以在这个位置加入代码来进行相应的控制。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。