Mas*_*ler 7 sql database sql-server firebird transactions
在MS SQL Server中,我可以轻松地将多个insert语句放入事务中,如下所示:
begin tran
insert into mytable values (1, 2, 3)
insert into mytable values (4, 5, 6)
commit tran
Run Code Online (Sandbox Code Playgroud)
我试图在Firebird中做同样的事情,但我无法弄清楚语法.谷歌搜索"Firebird事务语法"返回没有任何用处.我已经发现足够知道存在事务支持,但没有关于如何正确使用它的示例.
所以我想我也可以问这里.有谁知道如何使用Firebird数据库的多个插入来编写事务?
补充@ Allan的答案(我赞成,BTW),这里有更多信息.
当你begin tran在SQL Server中,它并不意味着你现在开始交易.您已经在事务中,因为您已连接到数据库!什么begin tran确实是禁用的,这是在SQL Server的默认状态(除非另有说明)"在每个语句自动提交".
分别commit tran提交并将连接恢复为"在每个语句处自动提交"状态.
在任何数据库中,当您连接时,您已经处于事务中.这就是数据库的方式.例如,在Firebird中,即使只运行查询,也可以执行提交或回滚.
另一方面,某些数据库和连接库允许您使用"每个语句的自动提交"连接状态,这是SQL Server正在执行的操作.尽管该功能可能很有用,但它并不是很有说服力,并且会让初学者认为他们"不在交易中".
Firebird总是使用事务.只要您在数据库中进行更改,该事务就会立即启动,并在您提交之前保持对该会话的打开状态.使用您的代码,它只是:
insert into mytable values (1, 2, 3);
insert into mytable values (4, 5, 6);
commit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16937 次 |
| 最近记录: |