SqlConnection sconn = null; SqlCommand scmd = null; SqlTransaction strans = null; try { string sqlInsert = string.Format(@"insert into MyName (myid,myfname,mymname,mylname) values ('{0}','c','c','c')", Guid.NewGuid().ToString()); sconn = new Sql…
--视图 视图是一张虚拟表,它表示一张表的部分数据或多张表的综合数据,其结构和数据是建立在对表的查询基础上 视图在操作上和数据表没有什么区别,但两者的差异是其本质是不同: 数据表是实际存储记录的地方,然而视图并不保存任何记录. 相同的数据表,根据不同用户的不同需求,可以创建不同的视图(不同的查询语句) 视图的目的是方便查询,所以一般情况下不能对视图进行增删改 优点: 1:筛选表中的行\降低数据库的复杂程度 2:防止未经许可的用户访问敏感数据 --视图并不存储数据,视图只是将sql语句封装了一下,…
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 ) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SELECT @变量名 = 值 --用于从表中查询数据并赋值,,可以一次给多个变量赋值 SET @name=‘张三’ SELECT @name = sName FROM student WHERE sId=@id (3)输出变量的值 SELECT 以表格的方式输出,可以同时输出多个变量:而PRINT 则…
--维护数据库-- --事务(transaction)和锁-- --事务(transaction)-- --概述: 事务是指封装了一组T-SQL语句的单个逻辑单元.单元中的所有语句作为一个整体,在满足一定条件时全部执行(提交事务),或因不满足条件而全部不执行(回滚事务). 在同一数据库中的数据在操作时可能是相互影响的,如果数据再互相影响的操作中发生,可以使用事务解决. --事务的属性:事务的定义(声明).执行(提交).撤销(回滚)操作一旦发生,必须满足四个属性,即ACID属性. 1)原子性:事务…
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会告诉你每个DBA应该知道的具体细节. 这篇文章会列出导致事务日志过度增长的常见的问题和错误管理形式,包括: 在完整恢复模式里,没有进行日志备份 进行索引维护 长时间运行或未提交的事务阻止事务日志里空间重用 当然,如果增长没检查,日志文件会扩展直到吞没所有可用磁盘空间或日志文件的最大大小,在这个时候你…
create proc usp_Stock @GoodsId int, @Number int, @StockPrice money, @SupplierId int, @EmpId int, ), @StockDate datetime, @TotalMoney money , @ActMoney money , @baseId int, ) as --事务中操作的错误记录 --开启事务 begin transaction --实现进货信息的添加 insert into StockInfo v…
在很多情况下,事务是个很有用的东西,可以把一系列的操作组合成一个原子粒度的操作,一旦组合中某个地方出错,可以整个干净的进行滚回,不会留下脏数据:除此之外,事务还能提高批量操作的效率,如在本地SQLite数据库里面,批量插入1万条数据,那么使用事务和没有使用事务,速度上至少差别几十到上百倍的差异.既然事务有完整性和速度性的差异,因此,基于上述原因,我们在很多情况下最好使用事务进行操作.本文主要介绍在开发框架中如何整合事务的操作,并介绍在各个分层中的事务使用案例. 由于我介绍的相关框架,主要是采用了…
上一篇文章我介绍了在关闭binlog的情况下,事务提交的大概流程.之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称之为内部xa事务(Distributed Transactions),与之对应的还有一个外部xa事务.内部xa事务我理解主要是mysql内部为了保证binlog与redo log之间数据的一致性而存在的,这也是由其架构决定的(binlog在mysql层,而redo log 在存储引擎层):而外部xa…
Redis 事务提供了一种将多个命令请求打包,然后一次性.按顺序地执行多个命令的机制,并且在事务执行期间,服务器不会中断,会将事务中的所以命令都执行完毕才去处理其他客户端的命令请求. 事务的实现 事务开始 MULTI 命令意味着事务的开始. 事务从开始到结束包含三个阶段:事务开始.命令入队.事务执行. 127.0.0.1:6379> multi OK multi 命令将执行命令的客户端从非事务切换到事务状态,这一切换是通过在客户端状态的 flags 属性中打开 REDIS_MULTI 标识完成的…
概念: XA(分布式事务)规范主要定义了(全局)事务管理器(TM: Transaction Manager)和(局部)资源管理器(RM: Resource Manager)之间的接口.XA为了实现分布式事务,将事务的提交分成了两个阶段:也就是2PC (tow phase commit),XA协议就是通过将事务的提交分为两个阶段来实现分布式事务. 两阶段: 1)prepare 阶段 事务管理器向所有涉及到的数据库服务器发出prepare"准备提交"请求,数据库收到请求后执行数据修改和日志…
1.使用 T-SQL 语句来管理事务       开始事务:BEGIN TRANSACTION       提交事务:COMMIT TRANSACTION       回滚(撤销)事务:ROLLBACK TRANSACTION  2.判断某条语句执行是否出错       使用全局变量@@ERROR.@@ERROR 只能判断当前一条 T-SQL 语句执行是否有错,为了判断事务中所有 T-SQL 语句是否有错,我们需要对错误进行累计:如: SET @errorSum=@errorSum+@@erro…
在网上找到的都是java里的配置方式,后来认真读了下spring.net的帮助文档,解决了这个问题:现在把我的server层的配置文件copy出来: <?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net" xmlns:aop = "http://www.springframework.net/aop&…
Ado.Net事务处理.在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务.若要执行事务,请执行下列操作:• 调用Connection 对象的BeginTransaction 方法来标记事务的开始.• 将Transaction 对象分配给要执行的Command的Transaction 属性.• 执行所需的命令.• 调用Transaction 对象的Commit 方法来完成事务,或调用Rollback 方法来取消事务.当然ADO.NET事务处理有优点和缺点…
触发器类型有两种: 1.AFTER(FOR)触发器 在动作执行之后触发(增删改执行完成后,触发器中的代码再执行),不能为视图指定for触发器,只能为表指定该触发器. 2.instead of触发器 可以理解为替代触发操作执行,写了这个之后,写的执行代码就没有用了,就被触发器的代码覆盖了 同时DML 触发器使用 deleted 和 inserted 逻辑(概念)表. 它们在结构上类似于定义了触发器的表,即对其尝试执行了用户操作的表. 在 deleted 和 inserted 表保存了可能会被用户更…
触发器: 触发器为特殊类型的存储过程,可在执行语言事件时自动生效.SQL Server 包括三种常规类型的触发器:DML 触发器.DDL 触发器和登录触发器. 当服务器或数据库中发生数据定义语言 (DDL) 事件时将调用 DDL 触发器.登录触发器将为响应 LOGON 事件而激发存储过程.与 SQL Server 实例建立用户会话时将引发此事件. 当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器.DML 事件包括在指定表或视图中修改数据的 INSERT 语句.UPDATE 语…
 打开binlog选项后,执行事务提交命令时,就会进入两阶段提交模式.两阶段提交分为prepare阶段和commit两个阶段.流程如下 :这里面涉及到两个重要的参数:innodb_flush_log_at_trx_commit和sync_binlog,参数可以设置不同的值,具体可以查看mysql的帮助手册.我这里设置的是双一模式(innodb_flush_log_at_trx_commit=1,sync_binlog=1),不同的模式区别在于,写文件调用write和落盘fsync调用的频率不同,…
主java package com.itheima.transtation; import com.itheima.transtation.db.BankOpenHelper; import android.os.Bundle; import android.app.Activity; import android.database.sqlite.SQLiteDatabase; import android.view.Menu; import android.view.View; public…
先说一下启动过程中的几个点: 加载配置文件: AbstractAutowireCapableBeanFactory.doCreateBean --> initializeBean --> applyBeanPostProcessorsAfterInitialization --> beanProcessor.postProcessAfterInitialization --> AbstractAutoProxyCreator.postProcessAfterInitializati…
今天来分享下T-SQL高级编程中的事务.索引.视图,可以和之前的SQL server系列文章结合起来. 一.事务 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行,事务是一个不可分割的工作逻辑单元 这样说可能太笼统,看个实例就会清晰很多,比如银行转账业务,相信大家都办理过. create table bank ( customerName ), --顾客姓名 currentMoney money --当前余额 )…
一.变量那点事儿 1.1 局部变量 (1)声明局部变量 DECLARE @变量名 数据类型 DECLARE @name varchar(20) DECLARE @id int (2)为变量赋值 SET @变量名 =值 --set用于普通的赋值 SELECT @变量名 = 值 --用于从表中查询数据并赋值,,可以一次给多个变量赋值 SET @name='张三' SET @id = 1 SELECT @name = sName FROM student WHERE sId=@id (3)输出变量的值…
前面我们讲到了Spring在进行事务逻辑织入的时候,无论是事务开始,提交或者回滚,都会触发相应的事务事件.本文首先会使用实例进行讲解Spring事务事件是如何使用的,然后会讲解这种使用方式的实现原理. 1. 示例 对于事务事件,Spring提供了一个注解@TransactionEventListener,将这个注解标注在某个方法上,那么就将这个方法声明为了一个事务事件处理器,而具体的事件类型则是由TransactionalEventListener.phase属性进行定义的.如下是Transac…
数据库的读写操作中,事务在保证数据的安全性和一致性方面起着关键的作用,而回滚正是这里面的核心操作.Django的ORM在事务方面也提供了不少的API.有事务出错的整体回滚操作,也有基于保存点的部分回滚.本文将讨论Django中的这两种机制的运行原理. Django利用django.db.transaction模块中的API对数据库进行事务的管理 Django provides a straightforward API in the django.db.transaction module to…
事务与并发控制 事务的基本的概念和性质 ACID: 原子性:一个事务要么全部执行,要么全部不执行 一致性:执行事务的时候,数据库从一个一致的状态变更到另一个状态 隔离性: 确保在并发执行的时候,每个事务感觉不到其他事务在并发的执行 持久性:一个事务完成之后,即使数据库发生故障,他对数据库的改变应该永久的保存在数据库中. 并发引起的现象 脏读:一个事务读取了第二个事务的已经修改但是未提交的数据 不可重复读:一个事务第一次读取数据之后,被读取的数据被另一个已提交的事务进行了修改,事务再次读取这些数据…
背景:之前一直在学习数据库中的相关事务,而忽略了spring中的事务配置,在阿里面试时候基本是惨败,这里做一个总结. 可能是最漂亮的Spring事务管理详解 https://github.com/Snailclimb/JavaGuide#mysql ps:该文章来源于git上的总结,通俗易懂,建议所有部分都好好看看. 事务的特性:ACID spring管理事务的接口: PlatformTransactionManager: (平台)事务管理器 TransactionDefinition: 事务定…
最近想提升,苦逼程序猿,想了想还是拿最熟悉,之前也一直想看但没看的spring源码来看吧,正好最近在弄事务这部分的东西,就看了下,同时写下随笔记录下,以备后查. spring tx源码分析 这里只分析简单事务也就是DataSourceTransactionManager 首先肯定找入口了,看过spring源码的同学一定都会找spring tx的入口就是在TxAdviceBeanDefinitionParser这里将解析tx的配置,生成TransactionInterceptor对象,这个也就是一…
一.事务的概述 什么是事务? 在数据库中,所谓事务是指一组逻辑操作单元即一组sql语句,当这个单元中的一部分操作失败,整个事务回滚,只有全部正确才完成提交.判断事务是否配置成功的关键点在于出现异常时事务是否会回滚. 二.事务的特性(ACID) 1.原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 2.一致性(Consistency) 事务必须使数据库从一个一致性状态变换到另外一个一致性状态.(数据不被破坏) 3.隔离性(Isolatio…
Google关于Spanner的论文中分布式事务的实现 Google在Spanner相关的论文中详细的解释了Percolator分布式事务的实现方式, 而且用简洁的伪代码示例怎么实现分布式事务; Percolator算法在分布式数据库中运用广泛, 国内著名的开源分布式数据库TiDB的事务实现来源于Percolator, 腾讯TBase的分布式事务实现也来自于Percolator; 在讲Percolator之前, 我们先看几个问题: 1, 假设一个事务开始的时间戳是 T2 , 这个事务读取数据的原…
上一篇文章我们介绍了在关闭binlog的情况下,事务提交的大概流程.之所以关闭binlog,是因为开启binlog后事务提交流程会变成两阶段提交,这里的两阶段提交并不涉及分布式事务,当然mysql把它称之为内部xa事务(Distributed Transactions),与之对应的还有一个外部xa事务. 这里所谓的两阶段提交分别是prepare阶段和commit阶段. 内部xa事务主要是mysql内部为了保证binlog与redo log之间数据的一致性而存在的,这也是由其架构决定的(binlo…
今天来分享下T-SQL高级编程中的事务.索引.视图,可以和之前的SQL server系列文章结合起来. 一.事务 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行.要么都不执行,事务是一个不可分割的工作逻辑单元 这样说可能太笼统,看个实例就会清晰很多,比如银行转账业务,相信大家都办理过. create table bank ( customerName ), --顾客姓名 currentMoney money --当前余额 )…
Snailclimb 2018年05月21日阅读 4246 可能是最漂亮的Spring事务管理详解 Java面试通关手册(Java学习指南):github.com/Snailclimb/… 微信阅读地址链接:可能是最漂亮的Spring事务管理详解 事务概念回顾 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行. 事物的特性(ACID): 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 一致性: 执行事务前后,数据保持一致: 隔离性:…