/****** Object: StoredProcedure [dbo].[TRUNCATE_TBL] Script Date: 02/22/2010 14:23:33 ******/ ਍匀䔀吀 䄀一匀䤀开一唀䰀䰀匀 伀一ഀഀ GO ਍匀䔀吀 儀唀伀吀䔀䐀开䤀䐀䔀一吀䤀䘀䤀䔀刀 伀一ഀഀ GO ਍挀爀攀愀琀攀 倀爀漀挀攀搀甀爀攀 嬀搀戀漀崀⸀嬀吀刀唀一䌀䄀吀䔀开吀䈀䰀崀 䀀琀戀氀 瘀愀爀挀栀愀爀⠀㄀   ⤀Ⰰ䀀漀眀渀攀爀 瘀愀爀挀栀愀爀⠀㌀ ⤀㴀✀搀戀漀✀ഀഀ WITH EXECUTE AS SELF ਍愀猀 ഀഀ begin ਍ഀഀ Declare @username varchar(30) ਍ऀ匀攀琀 䀀甀猀攀爀渀愀洀攀 㴀 伀爀椀最椀渀愀氀开氀漀最椀渀⠀⤀ഀഀ ਍ഀഀ If exists (select * from dba.truncate_list ਍ऀऀऀऀऀ圀栀攀爀攀 嬀䰀椀猀琀开吀愀戀氀攀开一愀洀攀崀 㴀 䀀琀戀氀⤀ഀഀ Begin ਍ऀऀ  䐀攀挀氀愀爀攀 䀀爀挀 椀渀琀ഀഀ Declare @truncate_Audit_id int ਍ऀऀ  䤀渀猀攀爀琀 椀渀琀漀 搀戀愀⸀琀爀甀渀挀愀琀攀开䄀甀搀椀琀 ⠀琀愀戀氀攀开渀愀洀攀Ⰰ琀愀戀氀攀开漀眀渀攀爀Ⰰ甀猀攀爀渀愀洀攀⤀ഀഀ Values (@tbl,@owner,@userName) ਍ऀऀ  匀攀琀 䀀琀爀甀渀挀愀琀攀开愀甀搀椀琀开椀搀 㴀 猀挀漀瀀攀开椀搀攀渀琀椀琀礀⠀⤀ഀഀ ਍ऀऀ  搀攀挀氀愀爀攀 䀀搀礀渀愀洀椀挀开猀焀氀 渀瘀愀爀挀栀愀爀⠀㄀   ⤀ഀഀ set @dynamic_sql = 'Truncate Table ' + @owner + '.' + @tbl ਍ऀ ഀഀ --Print @dynamic_sql ਍ऀऀ  猀攀琀 䀀爀挀 㴀 ⴀ㄀ഀഀ BEGIN TRY ਍ऀऀऀऀ攀砀攀挀 䀀爀挀 㴀 猀瀀开攀砀攀挀甀琀攀匀儀䰀 䀀搀礀渀愀洀椀挀开匀儀䰀ഀഀ END TRY ਍ऀऀ  䈀䔀䜀䤀一 䌀䄀吀䌀䠀ഀഀ DECLARE @ErrorMessage NVARCHAR(4000), ਍ऀऀऀऀऀऀ䀀䔀爀爀漀爀一甀洀戀攀爀     䤀一吀Ⰰഀഀ @ErrorSeverity INT, ਍ऀऀऀऀऀऀ䀀䔀爀爀漀爀匀琀愀琀攀      䤀一吀Ⰰഀഀ @ErrorLine INT, ਍ऀऀऀऀऀऀ䀀䔀爀爀漀爀倀爀漀挀攀搀甀爀攀  一嘀䄀刀䌀䠀䄀刀⠀㈀  ⤀㬀ഀഀ SELECT @ErrorNumber = ERROR_NUMBER(), ਍ऀऀऀऀ䀀䔀爀爀漀爀匀攀瘀攀爀椀琀礀 㴀 䔀刀刀伀刀开匀䔀嘀䔀刀䤀吀夀⠀⤀Ⰰഀഀ @ErrorState = ERROR_STATE(), ਍ऀऀऀऀ䀀䔀爀爀漀爀䰀椀渀攀 㴀 䔀刀刀伀刀开䰀䤀一䔀⠀⤀Ⰰഀഀ @ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-'); ਍ഀഀ SELECT @ErrorMessage = ਍ऀऀऀ一✀䔀爀爀漀爀 ─搀Ⰰ 䰀攀瘀攀氀 ─搀Ⰰ 匀琀愀琀攀 ─搀Ⰰ 倀爀漀挀攀搀甀爀攀 ─猀Ⰰ 䰀椀渀攀 ─搀Ⰰ ✀ ⬀ ഀഀ 'Message: '+ ERROR_MESSAGE(); ਍ഀഀ -- Raise an error: msg_str parameter of RAISERROR will contain ਍ऀऀⴀⴀ 琀栀攀 漀爀椀最椀渀愀氀 攀爀爀漀爀 椀渀昀漀爀洀愀琀椀漀渀⸀ഀഀ RAISERROR (@ErrorMessage,@ErrorSeverity,1, ਍ऀऀऀ䀀䔀爀爀漀爀一甀洀戀攀爀Ⰰ䀀䔀爀爀漀爀匀攀瘀攀爀椀琀礀Ⰰ䀀䔀爀爀漀爀匀琀愀琀攀Ⰰ䀀䔀爀爀漀爀倀爀漀挀攀搀甀爀攀Ⰰഀഀ @ErrorLine) ਍ഀഀ RETURN @RC ਍ऀऀ  䔀一䐀 䌀䄀吀䌀䠀ഀഀ ਍ऀऀऀऀ唀瀀搀愀琀攀 搀戀愀⸀琀爀甀渀挀愀琀攀开愀甀搀椀琀ഀഀ Set success = @rc ਍ऀऀऀऀऀ  圀栀攀爀攀 琀爀甀渀挀愀琀攀开愀甀搀椀琀开椀搀 㴀 䀀琀爀甀渀挀愀琀攀开愀甀搀椀琀开椀搀ഀഀ End ਍ऀ䔀䰀匀䔀ഀഀ Begin ਍ऀऀⴀⴀ䐀䔀䌀䰀䄀刀䔀 䀀爀挀 椀渀琀ഀഀ SET NOCOUNT ON ਍ऀऀ䐀䔀䌀䰀䄀刀䔀 䀀琀爀甀渀挀愀琀攀开䄀甀搀椀琀开椀搀㄀ 椀渀琀ഀഀ INSERT dba.truncate_fail (table_name_input,table_owner,username) ਍ऀऀ  嘀䄀䰀唀䔀匀 ⠀䀀琀戀氀Ⰰ䀀漀眀渀攀爀Ⰰ䀀甀猀攀爀一愀洀攀⤀ഀഀ Set @truncate_audit_id1 = scope_identity() ਍ऀऀ刀䄀䤀匀䔀刀刀伀刀⠀✀䌀愀渀渀漀琀 昀椀渀搀 琀栀攀 漀戀樀攀挀琀 戀攀挀愀甀猀攀 椀琀 搀漀攀猀 渀漀琀 攀砀椀猀琀 漀爀 礀漀甀 搀漀 渀漀琀 栀愀瘀攀 瀀攀爀洀椀猀猀椀漀渀猀⸀✀Ⰰഀഀ 16,1,1088,16,7,'[dbo].[TRUNCATE_TBL]',1) ਍ऀऀ刀攀琀甀爀渀 ⴀ㄀ഀഀ End ਍䔀一䐀ഀഀ