正如我们在Oracle中所知,在我们调用提交之前,不会提交任何数据或操作查询。我想在SQL Server上实现这样的实现,我可以在db上运行操作查询,但数据不会永久更改,只是让我在操作查询之前和之后查看数据。
或者有没有办法在同一台服务器上镜像数据库,以便我可以在辅助数据库上测试我的查询,但它对主数据库没有任何影响。
答案 0 :(得分:2)
您可以在同一个查询窗口中执行此操作,您在其中编写了'begin tran' 不遵守之前不要承诺。
您可以在同一个窗口中执行查询次数,这样可以在提交事务之前预览查询。
只能在同一查询窗口内。您无法在其他查询窗口中查看预览。
答案 1 :(得分:2)
您可以使用IMPLICIT_TRANSACTIONS
设置来实现与Oracle相似的功能:
由于此设置为
ON
而自动打开的事务必须由用户在事务结束时显式提交或回滚。否则,当用户断开连接时,将回滚事务及其包含的所有数据更改。
如果您愿意,可以在Management Studio中更改设置,以便在打开新查询窗口时此设置始终有效:
答案 2 :(得分:0)
您可以将隔离级别从“读取提交”更改为“快照”以解决您的测试问题。(如果您不希望在事务期间看到数据更改)
请参阅以下链接了解快照隔离级别:
http://gavindraper.com/2012/02/18/sql-server-isolation-levels-by-example/