10 sql sql-server
我的问题很简单:它们之间的差异/相似之处/基数是什么?
在 SQL Server 中?
据我所知,连接是 SQL Server 实例和客户端之间的单个通信通道,在其中执行分组为批处理的语句集合。一个批次或隐式或显式映射到一个或多个事务。这样对吗?
差不多了。
批处理就是需要执行的一批命令。事务是一组保证成功或完全失败的命令(即,它不会完成一半命令,然后在其余命令上失败,如果一个失败,则全部失败)。
据我所知,SQL Server 使用连接池,因此我不会依赖每个客户端一个连接的想法。
小智 6
交易和批次是两个独立的概念。两者都可以在一对多配置中使用。
事务块是一个单一的“工作单元”,这是一个概念,即提交的 sql 必须完全工作或根本不工作。例如,如果您更新两个相互链接的表;两者都必须成功才能提交数据更改。[ https://msdn.microsoft.com/en-us/library/ms174377.aspx]
批处理是微软的概念。借助 Microsoft 创建的工具,例如 sqlcmd 和 osql,批处理只是确保单一执行计划。例如,如果您创建一个变量并在批处理之外使用它,该工具将抛出错误。[ https://msdn.microsoft.com/en-us/library/ms188037.aspx]
因此,您可以有多个批次来更新一个事务块内的多个表。只要它们不违反单个批处理执行计划。
此外,在一个批处理中,您可以拥有多个事务块,从而确保表等数据库实体之间的数据完整性。
连接只是批准在服务器上运行查询的通信握手。
语句是形成查询的单独行。GO(T-Sql 批处理分隔符)和 BEGIN TRANSACTION(用于启动新事务块的 ANSI SQL)都是语句。
| 归档时间: |
|
| 查看次数: |
11237 次 |
| 最近记录: |