因为Microsoft SQL Server Management Studio没有调试环境,所以我们要调试SQL语句变的很困难。在不确定自己写的Sql是正确的前提下,又不敢直接执行看结果,所以可能只有新建一个测试数据库了。但经常一个小问题也建一个测试数据库,就太麻烦了。
还有就是调试触发器,哦,不对,触发器根本就没得调试,只有执行Sql语句后看结果才知道有没有错误,如果执行后才从结果中发现自己Sql语句写错了,那就太悲剧了。
下面小编就介绍一个小编本人常用的调试方法,那就是利用事务(transaction)来调试.
下面引用和朋友的一段对话:
问:
A表:ID(自动增长),Num
B表:ID(自动增长),Num
怎么把B表中Num列的值赋给ID相同的A表
答:
update t1 set t1.num=t2.num from a t1,b t2 where t1.id=t2.id
问:
我感觉这条语句好像有问题
答:
如果你觉的Sql语句不对,可以利用transaction来测试看结果
begin transaction
update t1 set t1.num=t2.num from a t1,b t2 where t1.id=t2.id
select * from a
select * from b
rollback transaction
这样就不会实现更改你的结果集了,又能看到结果.
嗯,是的,就是利用transaction回滚的功能,在一个transaction中,即可看到transaction中执行的结果集,又可利用rollback回滚数据,就不会真正更改数据库中的数据了。
该方法虽然简单,但是却很实用,大家在不确定Sql语句的正确性的情况下,就试试这个方法吧。N