gpt4 book ai didi

tsql - T-SQL 中的调试输出

转载 作者:行者123 更新时间:2023-12-03 21:16:01 26 4
gpt4 key购买 nike

调试T-SQL时,有没有类似Javascript的alert();函数或 console.log我可以在测试和调试 SQL 脚本或存储过程时使用输出值吗?

最佳答案

您可以使用 PRINT 将消息输出到日志,但我个人更喜欢使用低严重性的 RAISERROR,因为 PRINT 输出并不总是立即打印到屏幕上。特别是在长期运行的 SP 中。另一方面,像这样的东西会立即打印:

RAISERROR ('My Message', 10, 1)

不要被名称 ERROR 所迷惑,严重性为 10 的错误没有害处。

至于 CTE,我认为您在自引用公用表表达式方面遇到了问题。但是你应该知道在递归CTE的执行中是没有办法插入PRINT语句的。
为了调试那些,我通常会在每次迭代时递增的结果集中添加一个额外的“迭代索引”列。还有一些其他列来帮助评估情况。当与结果集的其余部分一起检查时,它通常会提供很好的洞察力。像 IDX col down 之类的东西。其他列帮助我检查连接条件以查看错误:
WITH x AS (
SELECT 1 AS IDX, A._ID as ID_A, NULL as ID_B
FROM MYTABLE A
WHERE A._ID = 6

UNION ALL

SELECT X.IDX + 1, A._ID, B._ID
FROM MYTABLE B INNER JOIN X ON B._ID = X._ID + 1
WHERE B._ID < 20

)
SELECT *
FROM X

关于tsql - T-SQL 中的调试输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com