SqlServer批量刷数据执行事务回滚语句备份
2016-09-29 22:08
387 查看
企业进行对数据库执行刷数据工作,一段很长的语句希望同时成功或者失败时用到。
1.建立测试环境
2.执行事务
测试过提交和回滚事务正常。
3.辅助语句
注意:
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 时,才能为表' '中的标识列指定显式值”。
1.建立测试环境
/************************************************************ * Code formatted by SoftTree SQL Assistant ?v6.5.278 * Time: 2016/9/29 21:33:55 ************************************************************/ ---建立测试环境 CREATE DATABASE TestTransaction USE TestTransaction GO CREATE 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 TRANSACTION END TRY BEGIN CATCH ROLLBACK TRANSACTION PRINT '有语句插入失败,事务已回滚' END CATCH
测试过提交和回滚事务正常。
3.辅助语句
---删除表,还原自增从1开始 TRUNCATE TABLE testTable ---显示插入自增列 SET IDENTITY_INSERT testTable ON INSERT 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 时,才能为表' '中的标识列指定显式值”。
相关文章推荐
- C# 执行多条SQL语句,实现数据库事务(通过Hashtable存储数据) .
- Vb Ado实现带事务回滚的sql语句执行
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚) .
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚)
- C# 执行多条SQL语句,实现数据库事务(通过Hashtable存储数据) .
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚)
- .net 事务问题,执行多条更新语句,如果有一条出异常,全部回滚
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- 数据库open时,回滚数据文件丢失,无备份,有活动事务(实验系列)
- JAVA中处理事务的程序--多条更新SQL语句的执行(包括回滚) .
- 执行打开远程数据的SQl语句 受阻
- 执行多条SQL语句,实现数据库事务。
- 函数中的DML语句的执行问题--自治事务
- 使用SQL语句备份与恢复数据库
- SqlServer与Oracle创建临时备份表数据的语句区别
- 疑问:如何对内存中DataSet数据表执行Sql语句?
- Enterprise Library 4.1数据访问应用程序块快速入门【5】在事务内执行多个更新程序
- 执行多条SQL语句,实现数据库事务。
- docmd.runsql 语句执行的操作查询如何回滚?
- ASP.NET调用类连接Access数据库执行sql语句并以GridView方式读取表中数据