Nal*_*lum 4 sql sql-server-2008
在SQL Server 2008中,我收到以下错误:
不能将decimal(5,2)数据类型(参数4)指定为替换参数.
只是看看桌面上的触发器,看起来问题与此有关 if
if @SumField7 <> 100
begin
rollback tran
raiserror ('...%d...', 16, 1, @SumField7)
end
Run Code Online (Sandbox Code Playgroud)
这个问题很容易重现
declare @SumField7 decimal(5,2) = 123.45
raiserror ('...%d...', 16, 1, @SumField7)
Run Code Online (Sandbox Code Playgroud)
您指定%d
为类型规范,它表示有符号整数但传递给它decimal
.也许这从未在SQL Server 2000中进行过类型检查.
看起来没有decimal
占位符的语法,你需要传递一个字符串,如下所示.
declare @SumField7 decimal(5,2) = 123.45
declare @SumField7String varchar(7) = @SumField7
raiserror ('...%s...', 16, 1, @SumField7String)
Run Code Online (Sandbox Code Playgroud)