调试器命令和功能的限制
本主题适用于:
Visual Studio 旗舰版 |
Visual Studio 高级专业版 |
Visual Studio 专业版 |
Visual Studio 速成版 |
---|---|---|---|
Visual Studio Transact-SQL 调试器提供了很多常见的调试功能,但并非所有常见的调试功能。Transact-SQL 调试支持大多数调试器命令,如设置断点和单步执行。可以在**“局部变量”窗口中查看变量值和传递的参数值。当逐句通过或运行过程时,还可以将表达式拖动到“监视”**窗口中以跟踪它们。
然而,鉴于 SQL Server 本身的一些基本特征,Transact-SQL 调试发生的环境与其他调试发生的环境有很大的差异。这种差异导致 Transact-SQL 调试存在着某些限制。
通过 SQL Server 调试时的一般限制
不能使用**“编辑”和“继续”**。
不能在**“调用堆栈”窗口中使用“运行至光标处”**。
不能在处理 Transact-SQL 语句的同时使用**“中断”**。
SQL PRINT 语句的输出不显示在调试器中或**“数据库输出”**窗格中。
不能在 Visual Studio 中使用**“AutoRollback”**。如果再现更改数据的 bug,则可能会因数据发生更改而丢失该 bug。
许多窗口不可用,或者未提供任何功能。它们是:
内存
寄存器
Transact-SQL 的反汇编
Transact-SQL 调试限制
不支持断点条件和筛选器。
由于 SQL Server 没有真正的内存或寄存器,所以不能使用**“内存”窗口或“寄存器”**窗口。
不能使用**“设置下一语句”**更改执行序列。必须遵循 Transact-SQL 代码中的流控制顺序和语句顺序。作为对此限制的一种解决方法,可以将控制语句放在 Transact-SQL 代码块周围,并更改变量的值。
不能从 Transact-SQL 对象内部访问任何 .NET Framework 变量或属性。
可以显示**“即时”**窗口,但不能用它执行任何有用的操作,例如为变量赋值和查询数据库。
许多窗口不可用,或者未提供任何功能。它们是:
反汇编
线程
寄存器
进程
模块