我们已将sql server兼容性从100更改为130存储过程中的以下代码的行为不同:
DECLARE @i decimal(4, 0) = 1, @j decimal(4, 1) = 0.5SELECT SUM(@i) - SUM(@j)
DECLARE @i decimal(4, 0) = 1,
@j decimal(4, 1) = 0.5
SELECT SUM(@i) - SUM(@j)
选择结果:兼容级别100:0兼容级别130:1我们不确定代码中有多少这样的计算。在sql server数据库中是否有任何设置可以使其与兼容级别100相同?
c3frrgcw1#
让我们尝试使用合适的数据类型:https://stackoverflow.com/a/7158770/5309660
DECLARE @i decimal(4, 0) = 1, @j decimal(4, 1) = 0.5SELECT CAST(SUM(@i) AS REAL) - CAST(SUM(@j) AS REAL)
SELECT CAST(SUM(@i) AS REAL) - CAST(SUM(@j) AS REAL)
1条答案
按热度按时间c3frrgcw1#
让我们尝试使用合适的数据类型:https://stackoverflow.com/a/7158770/5309660