Audit Logging-Stored Procedure
2007-04-23 22:27
211 查看
1. T_ORDER
For Insert: sp_order_i
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_i')
BEGIN
DROP Procedure sp_order_i
END
GO
CREATE Procedure sp_order_i
(
@p_order_id INT OUTPUT,
@p_order_date DATETIME,
@p_supplier VARCHAR(50),
@p_created_by VARCHAR(50),
@p_created_on DATETIME,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36)
)
AS
INSERT [dbo].[T_ORDER]
([ORDER_DATE]
,[SUPPLIER]
,[CREATED_BY]
,[CREATED_ON]
,[LAST_UPDATED_BY]
,[LAST_UPDATED_ON]
,[TRANSACTION_NO])
VALUES
(@p_order_date ,
@p_supplier ,
@p_created_by ,
@p_created_on ,
@p_last_updated_by ,
@p_last_updated_on ,
@p_transaction_no)
SET @p_order_id = SCOPE_IDENTITY()
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Update: sp_order_u
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_u')
BEGIN
DROP Procedure sp_order_u
END
GO
CREATE Procedure sp_order_u
(
@o_order_id INT,
@p_order_date DATETIME,
@p_supplier VARCHAR(50),
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER]
SET [ORDER_DATE] = @p_order_date
,[SUPPLIER] = @p_supplier
,[LAST_UPDATED_BY] = @p_last_updated_by
,[LAST_UPDATED_ON] = @p_last_updated_on
,[TRANSACTION_NO] = @p_transaction_no
WHERE ORDER_ID= @o_order_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Delete: sp_order_d
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_d')
BEGIN
DROP Procedure sp_order_d
END
GO
CREATE Procedure sp_order_d
(
@o_order_id INT,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE dbo.T_ORDER
SET TRANSACTION_NO = @p_transaction_no ,
NEED_AUDIT = 0
WHERE ORDER_ID = @o_order_id
AND VERSION_NO= @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
DELETE dbo.T_ORDER
WHERE ORDER_ID = @o_order_id
GO
2. T_ORDER_DETAIL
FOR Insert: sp_order_detail_i
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_i')
BEGIN
DROP Procedure sp_order_detail_i
END
GO
CREATE Procedure sp_order_detail_i
(
@p_order_id INT,
@p_product_id INT,
@p_product_name VARCHAR(50),
@p_unit_price MONEY,
@p_quantity INT,
@p_created_by VARCHAR(50),
@p_created_on DATETIME,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36)
)
AS
INSERT INTO [dbo].[T_ORDER_DETAIL]
([ORDER_ID]
,[PRODUCT_ID]
,[PRODUCT_NAME]
,[UNIT_PRICE]
,[QUANTITY]
,[CREATED_BY]
,[CREATED_ON]
,[LAST_UPDATED_BY]
,[LAST_UPDATED_ON]
,[TRANSACTION_NO])
VALUES
(@p_order_id,
@p_product_id,
@p_product_name,
@p_unit_price,
@p_quantity,
@p_created_by ,
@p_created_on ,
@p_last_updated_by ,
@p_last_updated_on ,
@p_transaction_no)
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Update: sp_order_detail_u
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_u')
BEGIN
DROP Procedure sp_order_detail_u
END
GO
CREATE Procedure sp_order_detail_u
(
@o_order_id INT,
@o_product_id INT,
@p_product_name VARCHAR(50),
@p_unit_price MONEY,
@p_quantity INT,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER_DETAIL]
SET [PRODUCT_NAME] =@p_product_name
,[UNIT_PRICE] = @p_unit_price
,[QUANTITY] = @p_quantity
,[LAST_UPDATED_BY] = @p_last_updated_by
,[LAST_UPDATED_ON] = @p_last_updated_on
,[TRANSACTION_NO] = @p_transaction_no
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Delete: sp_order_detail_d
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_d')
BEGIN
DROP Procedure sp_order_detail_d
END
GO
CREATE Procedure sp_order_detail_d
(
@o_order_id INT,
@o_product_id INT,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER_DETAIL]
SET TRANSACTION_NO = @p_transaction_no,
NEED_AUDIT=0
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
DELETE FROM [dbo].[T_ORDER_DETAIL]
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
GO
For Insert: sp_order_i
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_i')
BEGIN
DROP Procedure sp_order_i
END
GO
CREATE Procedure sp_order_i
(
@p_order_id INT OUTPUT,
@p_order_date DATETIME,
@p_supplier VARCHAR(50),
@p_created_by VARCHAR(50),
@p_created_on DATETIME,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36)
)
AS
INSERT [dbo].[T_ORDER]
([ORDER_DATE]
,[SUPPLIER]
,[CREATED_BY]
,[CREATED_ON]
,[LAST_UPDATED_BY]
,[LAST_UPDATED_ON]
,[TRANSACTION_NO])
VALUES
(@p_order_date ,
@p_supplier ,
@p_created_by ,
@p_created_on ,
@p_last_updated_by ,
@p_last_updated_on ,
@p_transaction_no)
SET @p_order_id = SCOPE_IDENTITY()
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Update: sp_order_u
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_u')
BEGIN
DROP Procedure sp_order_u
END
GO
CREATE Procedure sp_order_u
(
@o_order_id INT,
@p_order_date DATETIME,
@p_supplier VARCHAR(50),
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER]
SET [ORDER_DATE] = @p_order_date
,[SUPPLIER] = @p_supplier
,[LAST_UPDATED_BY] = @p_last_updated_by
,[LAST_UPDATED_ON] = @p_last_updated_on
,[TRANSACTION_NO] = @p_transaction_no
WHERE ORDER_ID= @o_order_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Delete: sp_order_d
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_d')
BEGIN
DROP Procedure sp_order_d
END
GO
CREATE Procedure sp_order_d
(
@o_order_id INT,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE dbo.T_ORDER
SET TRANSACTION_NO = @p_transaction_no ,
NEED_AUDIT = 0
WHERE ORDER_ID = @o_order_id
AND VERSION_NO= @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
DELETE dbo.T_ORDER
WHERE ORDER_ID = @o_order_id
GO
2. T_ORDER_DETAIL
FOR Insert: sp_order_detail_i
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_i')
BEGIN
DROP Procedure sp_order_detail_i
END
GO
CREATE Procedure sp_order_detail_i
(
@p_order_id INT,
@p_product_id INT,
@p_product_name VARCHAR(50),
@p_unit_price MONEY,
@p_quantity INT,
@p_created_by VARCHAR(50),
@p_created_on DATETIME,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36)
)
AS
INSERT INTO [dbo].[T_ORDER_DETAIL]
([ORDER_ID]
,[PRODUCT_ID]
,[PRODUCT_NAME]
,[UNIT_PRICE]
,[QUANTITY]
,[CREATED_BY]
,[CREATED_ON]
,[LAST_UPDATED_BY]
,[LAST_UPDATED_ON]
,[TRANSACTION_NO])
VALUES
(@p_order_id,
@p_product_id,
@p_product_name,
@p_unit_price,
@p_quantity,
@p_created_by ,
@p_created_on ,
@p_last_updated_by ,
@p_last_updated_on ,
@p_transaction_no)
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Update: sp_order_detail_u
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_u')
BEGIN
DROP Procedure sp_order_detail_u
END
GO
CREATE Procedure sp_order_detail_u
(
@o_order_id INT,
@o_product_id INT,
@p_product_name VARCHAR(50),
@p_unit_price MONEY,
@p_quantity INT,
@p_last_updated_by VARCHAR(50),
@p_last_updated_on DATETIME,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER_DETAIL]
SET [PRODUCT_NAME] =@p_product_name
,[UNIT_PRICE] = @p_unit_price
,[QUANTITY] = @p_quantity
,[LAST_UPDATED_BY] = @p_last_updated_by
,[LAST_UPDATED_ON] = @p_last_updated_on
,[TRANSACTION_NO] = @p_transaction_no
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
GO
For Delete: sp_order_detail_d
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'sp_order_detail_d')
BEGIN
DROP Procedure sp_order_detail_d
END
GO
CREATE Procedure sp_order_detail_d
(
@o_order_id INT,
@o_product_id INT,
@p_transaction_no CHAR(36),
@o_version_no TIMESTAMP
)
AS
UPDATE [dbo].[T_ORDER_DETAIL]
SET TRANSACTION_NO = @p_transaction_no,
NEED_AUDIT=0
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
AND VERSION_NO = @o_version_no
IF @@ROWCOUNT = 0
BEGIN
RAISERROR ('Version conflicts!',10,1)
END
DELETE FROM [dbo].[T_ORDER_DETAIL]
WHERE ORDER_ID = @o_order_id
AND PRODUCT_ID = @o_product_id
GO
相关文章推荐
- 看了只后不知道该说些什么...只能沉思.
- 【CSharp】一个让你了解csharp的多态的程序
- 在C#中应用哈希表(Hashtable)[转摘]
- C# 格式化字符字符
- 小试Delphi7+DUnit
- ASP.NET 2.0中使用webpart系列控件
- 使用gdb调试程序简介
- engine.js[dwr]javascript
- 孤立用户(翻译)
- 使用dwr进行数据检索的javascript
- 一个不得不记的问题
- 处理两级关联的代码 [javascript]
- 一条狗的世界1
- MFC程序的来龙去脉
- 换底公式 是什么?
- RepeatButton
- (原創) 如何使用ICE對PXA270燒入Bootloader? (OS) (Windows CE)
- Sohu主编方刚: 网络编辑该怎么做?
- 嘉嘉语录107
- ajax中 同一页面中 区别 更新多个区域的关键