8134: Divide by zero error encountered(遇到以零作除数错误)
SQL Server含义
由于算术表达式中的除数为零,发生了除零错误。SQL Server 无法完成除法并终止查询。
原因
用作除数的列或表达式计算结果为 0、平均值/比率计算中分母为零、未使用 NULLIF 的除法,或数据中出现意外的零值。
解决方法
用 NULLIF 保护分母(如 value / NULLIF(denominator, 0));结果变为 NULL,可用 ISNULL/COALESCE 提供默认值。使用 CASE WHEN denominator = 0 THEN NULL ELSE value/denominator END。在除法前用 WHERE 过滤掉零值。必要时评估 SET ARITHABORT/ANSI_WARNINGS 的行为。
同一数据库的其他条目
- 701There is insufficient system memory in resource pool to run this query(资源池中的系统内存不足,无法运行此查询)
- 845Time-out occurred while waiting for buffer latch(等待缓冲区闩锁时超时)
- 3201Cannot open backup device. Operating system error (backup device error)(无法打开备份设备。操作系统错误(备份设备错误))
- 245Conversion failed when converting the value to data type(将值转换为数据类型时失败)
- 515Cannot insert the value NULL into column(不能将值 NULL 插入列)
- 8115Arithmetic overflow error converting expression to data type(将表达式转换为数据类型时发生算术溢出错误)
- 512Subquery returned more than 1 value(子查询返回的值不止一个)