sql-server - 存储过程运行时无法确定将表达式转换为数据类型 int 的算术溢出错误的原因
问题描述
我有一个调用自定义标量值函数的存储过程。当我运行存储过程时,出现错误:
消息 8115,级别 16,状态 2,第 3 行
算术溢出错误将表达式转换为数据类型 int 错误
我一直试图通过调试存储过程并逐行单步执行来找出错误的原因。我仍然无法确定它。
在 SSMS 中,我有一个查询:
USE [TESTDB]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[buildEventSum]
SELECT 'Return Value' = @return_value
当我调试并单步执行 buildEventSum,然后单步执行时,错误不会生成,直到它返回到上述查询并且您“越过”选择“返回值”行。确认@return_value 为0,所以我很难过。
任何有关如何隔离和确定原因的提示将不胜感激。
解决方案
对于标量函数,您使用 SELECT:
SELECT [dbo].[buildEventSum]() AS result;
或者,如果要将结果保存到变量中:
DECLARE @result int;
SET @result=[dbo].[buildEventSum]();
SELECT @result AS result;
推荐阅读
- apache-spark - 使用 Python 中的 Spark Structured Sreaming 从 Kafka 读取数据并打印到控制台
- javascript - 如何按子文档分组并获取 value 字段的唯一值?
- javascript - 不和谐.js | 我如何做到这一点,使其每 2 或 3 个单词输入一个新行?
- flutter - 将 Sqlite 表导出到文件并在 Flutter 中重新导入
- bitcoin - 我们可以在不知道私钥的情况下进行加密货币交易吗
- list - applescript - 在定义的列表中使用条件系统
- c# - C#,WPF,加载默认视图
- javascript - 如何在javascript中缩短这个条件?
- javascript - Javascript字符串一次替换一个并添加到数组
- json - JSON 架构的文件夹参考