sqlsever回滚操作_SQL SERVER回滚恢复误操作的数据

CREATE PROCEDURE [dbo].[SP_UPDATE_LOG]

@TABLENAME VARCHAR(50)AS

BEGIN

SET NOCOUNT ON;IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = @TABLENAME AND TYPE = 'U')BEGIN

PRINT'ERROR:not exist table'+@TABLENAME

RETURN

END

IF (@TABLENAME LIKE'BACKUP_%' OR @TABLENAME='UPDATE_LOG')BEGIN

--PRINT'ERROR:not exist table '+@TABLENAME

RETURN

END

--================================判断是否存在 UPDATE_LOG 表============================

IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = 'UPDATE_LOG' AND TYPE = 'U')CREATE TABLEUPDATE_LOG

(

UpdateGUIDVARCHAR(36),

UpdateTimeDATETIME,

TableNamevarchar(20),

UpdateTypevarchar(6),

RollBackSQLvarchar(MAX),

ExecSQLVARCHAR(500)

)--=================================判断是否存在 BACKUP_ 表================================

IF NOT EXISTS(SELECT * FROM sys.tables WHERE NAME = 'BACKUP_'+@TABLENAME AND TYPE = 'U')BEGIN

DECLARE test_Cursor CURSOR FOR

SELECT COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH FROMINFORMATION_SCHEMA.columnsWHERE TABLE_NAME=@TABLENAME

OPENtest_CursorDECLARE @SQLTB NVARCHAR(MAX)=''

DECLARE @COLUMN_NAME NVARCHAR(50),@DATA_TYPE VARCHAR(20),@CHARACTER_MAXIMUM_LENGTH INT

FETCH NEXT FROM test_Cursor INTO @COLUMN_NAME,@DATA_TYPE,@CHARACTER_MAXIMUM_LENGTH

WHILE @@FETCH_STATUS=0

BEGIN

SET @SQLTB=@SQLTB+'['+@COLUMN_NAME+']'+@DATA_TYPE+CASE ISNULL(@CHARACTER_MAXIMUM_LENGTH,0) WHEN 0 THEN '' WHEN -1 THEN '(MAX)' ELSE'('+CAST(@CHARACTER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值