BinBrain Community
Welcome, Guest. Please login or register.
May 21, 2012, 05:13:10 PM

Login with username, password and session length
Search:     Advanced search
742 Posts in 415 Topics by 2732 Members
Latest Member: Ditalully
* Home Help Search Login Register


Online Exams | Blogs | Photos | Videos | Real Estate | Recipes | Business Directory| TV | Free Wallpapers
+  BinBrain Community
|-+  Computer Forums
| |-+  Database
| | |-+  SQL Server
| | | |-+  Error tracking example - SQL coding
« previous next »
Pages: [1] Print
Author Topic: Error tracking example - SQL coding  (Read 451 times)
admin
Administrator
Newbie
*****
Posts: 16


« on: February 18, 2009, 10:34:39 PM »

--Create Table TestRollBack1 (Id int)
--Create Table TestRollBack2 (Id int)
--Create Table TestRollBack3 (Id int)

IF EXISTS(SELECT 1 FROM SYSOBJECTS
WHERE NAME = 'cspTESTROLLBACK1'
AND TYPE = 'p')
DROP PROCEDURE cspTESTROLLBACK1
GO
CREATE PROCEDURE cspTESTROLLBACK1 @ID INT
AS
BEGIN
BEGIN TRY
BEGIN TRAN
INSERT INTO TESTROLLBACK1 VALUES(@ID)
COMMIT TRAN
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN
INSERT INTO ERROR_TRACK (
ERROR_NUMBER
, ERROR_SEVERITY
, ERROR_STATE
, ERROR_LINE
, ERROR_MESSAGE
, ERROR_PROCEDURE
, CRETED_DATE )
SELECT
ERROR_NUMBER()
, ERROR_SEVERITY()
, ERROR_STATE()
, ERROR_LINE ()
, ERROR_MESSAGE()
, ERROR_PROCEDURE()
, GETDATE()
END CATCH
END
GO
--------------------''--------------------''--------------------
IF EXISTS(SELECT 1 FROM SYSOBJECTS
WHERE NAME = 'cspTESTROLLBACK2'
AND TYPE = 'p')
DROP PROCEDURE cspTESTROLLBACK2
GO
CREATE PROCEDURE cspTESTROLLBACK2 @ID INT
AS
BEGIN
BEGIN TRY
BEGIN TRAN
EXEC cspTESTROLLBACK1 @ID
INSERT INTO TESTROLLBACK2 VALUES(@ID)
COMMIT TRAN
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN
INSERT INTO ERROR_TRACK (
ERROR_NUMBER
, ERROR_SEVERITY
, ERROR_STATE
, ERROR_LINE
, ERROR_MESSAGE
, ERROR_PROCEDURE
, CRETED_DATE )
SELECT
ERROR_NUMBER()
, ERROR_SEVERITY()
, ERROR_STATE()
, ERROR_LINE ()
, ERROR_MESSAGE()
, ERROR_PROCEDURE()
, GETDATE()
END CATCH
END
GO
--------------------''--------------------''--------------------
IF EXISTS(SELECT 1 FROM SYSOBJECTS
WHERE NAME = 'cspTESTROLLBACK3'
AND TYPE = 'p')
DROP PROCEDURE cspTESTROLLBACK3
GO
CREATE PROCEDURE cspTESTROLLBACK3 @ID1 VARCHAR(10), @ID2 VARCHAR(10), @ID3 VARCHAR(10)
AS
BEGIN
BEGIN TRY
BEGIN TRAN
EXEC cspTESTROLLBACK1 @ID1
EXEC cspTESTROLLBACK2 @ID2
INSERT INTO TestRollBack3 VALUES (@ID3)
COMMIT TRAN
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRAN
INSERT INTO ERROR_TRACK (
ERROR_NUMBER
, ERROR_SEVERITY
, ERROR_STATE
, ERROR_LINE
, ERROR_MESSAGE
, ERROR_PROCEDURE
, CRETED_DATE )
SELECT
ERROR_NUMBER()
, ERROR_SEVERITY()
, ERROR_STATE()
, ERROR_LINE ()
, ERROR_MESSAGE()
, ERROR_PROCEDURE()
, GETDATE()
END CATCH
END
--------------------''--------------------''--------------------
EXEC cspTESTROLLBACK3 '1','1','1'
GO
SELECT * FROM TESTROLLBACK1
SELECT * FROM TESTROLLBACK2
SELECT * FROM ERROR_TRACK
GO
DELETE FROM TESTROLLBACK1
DELETE FROM TESTROLLBACK2
DELETE FROM ERROR_TRACK
GO



Logged
Pages: [1] Print 
« previous next »
Jump to:  

Social Campaigns

Powered by MySQL Powered by PHP Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!