事务的回滚对于拥有自增主键的表来说,insert的数据是被删除,update和delete的数据是被恢复
来源:互联网 发布:西安程序员好找工作吗 编辑:程序博客网 时间:2024/06/05 11:57
事务的回滚对于拥有自增主键的表来说,insert的数据是被删除,update和delete的数据是被恢复
建表代码:create table users(userid int primary key identity(1,1),uname varchar(100),utime datetime)
c#调用代码 private void selectInsertSelectUpdateSelectDeleteSelect() { SqlConnection conn = getConn(); SqlTransaction tran = null; try { conn.Open(); tran = conn.BeginTransaction(); SqlDataAdapter cmdSelect = new SqlDataAdapter("select * from users", conn); cmdSelect.SelectCommand.Transaction = tran; DataTable dtSelect = new DataTable(); SqlCommand cmdInsert = new SqlCommand("insert into users(uname, utime) values('cc', GETDATE())", conn); cmdInsert.Transaction = tran; SqlDataAdapter cmdSelect_1 = new SqlDataAdapter("select * from users", conn); cmdSelect_1.SelectCommand.Transaction = tran; DataTable dtSelect_1 = new DataTable(); SqlCommand cmdUpdate = new SqlCommand("update users set utime=getdate()", conn); cmdUpdate.Transaction = tran; SqlDataAdapter cmdSelect_2 = new SqlDataAdapter("select * from users", conn); cmdSelect_2.SelectCommand.Transaction = tran; DataTable dtSelect_2 = new DataTable(); SqlCommand cmdDelete = new SqlCommand("delete from users where userid=(select MAX(userid) from users)", conn); cmdDelete.Transaction = tran; SqlDataAdapter cmdSelect_3 = new SqlDataAdapter("select * from users", conn); cmdSelect_3.SelectCommand.Transaction = tran; DataTable dtSelect_3 = new DataTable(); cmdSelect.Fill(dtSelect); bindData(dtSelect, gv); cmdInsert.ExecuteNonQuery(); cmdSelect_1.Fill(dtSelect_1); bindData(dtSelect_1, gv1); cmdUpdate.ExecuteNonQuery(); cmdSelect_2.Fill(dtSelect_2); bindData(dtSelect_2, gv2); cmdDelete.ExecuteNonQuery(); cmdSelect_3.Fill(dtSelect_3); bindData(dtSelect_3, gv3); /* * 此处丢异常,然后回滚 */ int x = 1; int y = 0; int z = x / y; tran.Commit(); } catch (Exception ex) { tran.Rollback(); Response.Write("fuck 有异常,老子回滚了"); } finally { conn.Close(); } } private void bindData(DataTable dt, GridView gv) { gv.DataSource = dt; gv.DataBind(); } private SqlConnection getConn() { string connStr = "server=.;uid=sa;pwd=123456;database=test;"; return new SqlConnection(connStr); }
0 0
- 事务的回滚对于拥有自增主键的表来说,insert的数据是被删除,update和delete的数据是被恢复
- nologging 对于delete update insert 是无效的
- 利用闪回功能恢复删除(drop,delete)的数据和表及数据,update之后数据恢复
- 恢复delete删除的数据
- 删除的数据被恢复!原来是因为这个啊
- sd卡数据恢复是如何恢复删除相片的
- Oracle数据被删除(delete,drop)之后的恢复方式
- oracle中数据是怎样前滚和回滚的
- 恢复SQL DELETE命令删除的数据
- 使用BBED恢复delete删除的数据
- oracle总delete删除数据的恢复
- 利用事务日志来恢复Update、Delete误操作引起的数据丢失
- 利用事务日志来恢复Update、Delete误操作引起的数据丢
- 利用事务日志来恢复Update、Delete误操作引起的数据丢
- 收集Insert/Update/Delete操作所引起的数据变化
- 恢复Update、Delete误操作引起的数据
- 恢复oracle中update或delete的数据
- SQL之merge into 批量更新数据 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。M
- Linux C 读取Key Code
- [LeetCode] Sum Root to Leaf Numbers
- 互联网商业发展的思考
- week 6
- Spring IOC 和 AOP
- 事务的回滚对于拥有自增主键的表来说,insert的数据是被删除,update和delete的数据是被恢复
- xxxx
- Redis安装配置使用
- [Unity3D]Unity3D游戏开发之怪物AI
- MySQL自定义排序函数FIELD()
- Spark SQL 物理执行计划各操作实现
- IPHONE parser 解析xml文件
- 抽象方法和抽象类
- IP地址转换函数--inet_addr和inet_ntoa使用笔记