我的问题很简单:两者之间的区别/相似点/基数是什么
- 交易次数
- 分批
- 连接和
- 陈述
在SQL Server中?
据我了解,连接是SQL Server实例与客户端之间的单个通信通道,在其中执行按批分组的语句集合。批处理被隐式或显式映射到一个或几个事务。这个对吗?
我的问题很简单:两者之间的区别/相似点/基数是什么
在SQL Server中?
据我了解,连接是SQL Server实例与客户端之间的单个通信通道,在其中执行按批分组的语句集合。批处理被隐式或显式映射到一个或几个事务。这个对吗?
Answers:
事务和批处理是两个独立的概念。两者都可以一对多配置使用。
事务块是单个“工作单元”,即已提交的sql必须完全起作用或根本不起作用的概念。例如,如果您更新两个相互链接的表;两者都必须成功才能提交数据更改。[ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
批处理是Microsoft的概念。使用Microsoft创建的工具(例如sqlcmd和osql),该批处理仅可确保一个执行计划。例如,如果您创建一个变量并在批处理之外使用它,则该工具将引发错误。[ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
因此,您可以有多个批处理来更新一个事务块内的多个表。只要它们不违反单个批处理执行计划。
此外,在一个批处理中,您可以有多个事务块,以确保数据库实体(如表)之间的数据完整性。
连接只是批准用户在服务器上运行查询的通信握手。
语句是构成查询的各个行。GO(T-Sql批处理分隔符)和BEGIN TRANSACTION(用于启动新事务块的ANSI SQL)都是语句。