首页 > 代码库 > SqlServer批量刷数据执行事务回滚语句备份
SqlServer批量刷数据执行事务回滚语句备份
企业进行对数据库执行刷数据工作,一段很长的语句希望同时成功或者失败时用到。
1.建立测试环境
/************************************************************ * Code formatted by SoftTree SQL Assistant ?v6.5.278 * Time: 2016/9/29 21:33:55 ************************************************************/---建立测试环境CREATE DATABASE TestTransactionUSE TestTransactionGOCREATE TABLE testTable( testId INT PRIMARY KEY IDENTITY, testName VARCHAR(20) NOT NULL);
2.执行事务
---开始BEGIN TRY BEGIN TRANSACTION INSERT INTO testTable VALUES(‘3‘) INSERT INTO testTable VALUES(‘5‘) INSERT INTO testTable VALUES( (SELECT testName FROM testTable WHERE testId=1))---将id为1的记录执行insert INSERT INTO testTable VALUES( (SELECT MAX(testName) FROM testTable WHERE testId=1))---聚合函数保证返回记录只有一条即可 COMMIT TRANSACTIONEND TRYBEGIN CATCH ROLLBACK TRANSACTION PRINT ‘有语句插入失败,事务已回滚‘END CATCH
测试过提交和回滚事务正常。
3.辅助语句
---删除表,还原自增从1开始TRUNCATE TABLE testTable---显示插入自增列SET IDENTITY_INSERT testTable ONINSERT INTO testTable(testid,testName) VALUES(32,‘5‘)SET IDENTITY_INSERT testTable off
注意:
1.set identity_insert只对当前会话生效。
2.set identity_insert 表名 ON 设置后,必须显示指定Id(Insert into 里面要写入id的列),否则插入错误。如insert into table_name values(‘111‘)将报错。
向自增ID插入指定值。 报错:“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘ ‘ 中的标识列插入显式值”。
插入语句未显示指定ID。 报错:“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表‘ ‘中的标识列指定显式值”。
SqlServer批量刷数据执行事务回滚语句备份
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。