我的情况是(传统)触发器调用的(用户定义的)函数显然会计算并将错误的值输入表中。问题出现在例如当一个UPDATE
的值,然后立即恢复到另一个/错误的值,显然是因为该函数以错误的计算开始。
我还不熟悉SQL Server的调试器。我可以吗设置一个断点,这个函数使得在启动有问题的UPDATE
后执行将在SF中停止,然后我可以检查值和单步。这是可能的,是否有关于这种情况的好教程?
到目前为止,我已经尝试过这个:
UPDATE
在没有发生回归的情况下,这不起作用(UPDATE
就好像没有触发器并且没有调用SF一样)。也许是因为SF和查询属于不同的会话,或者因为我缺乏足够的权限。如何从这个(或更好的)起点取得进展?
答案 0 :(得分:1)
Transact-SQL Debugger不一定是直接设置,根据您的网络安排可能需要更改防火墙,请参阅在线文档以获取完整信息。最简单的安排是您可以在SQL Server计算机上使用SQL Server Management Studio(SSMS)。
一旦调试器工作,然后将断点放在UPDATE语句上并单步进入它。
不使用调试器虽然调试函数很棘手,因为T / SQL函数无法修改数据库状态;他们不能使用PRINT或RAISERROR语句。