SQL语句拼接的难题
declare @qcyed numeric(28, 8)
declare @qcyec numeric(28, 8)
declare @bqbdd numeric(28, 8)
declare @bqbdc numeric(28, 8)
declare @t varchar(10)
set @qcyed=120
set @qcyec=200
set @bqbdd=350
set @bqbdc=500
set @t='Z'
declare @upsql nvarchar(MAX)
SET @upsql=N'UPDATE tb_Rpt_ZCFZ SET Col=dbo.SetYE('+@qcyed+','+@qcyec+','+@bqbdd+','+@bqbdc+','+@t+') WHERE Sort=00'
print @upsql
其实dbo.SetYE函数的前四个参数都是numeric(28, 8)类型的,最后一个@t是varchar(10)类型
最后提示如下:
从数据类型 nvarchar 转换为 numeric 时出错。
求高手指点!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[解决办法]
- SQL code
DECLARE @qcyed NUMERIC(28, 8)DECLARE @qcyec NUMERIC(28, 8)DECLARE @bqbdd NUMERIC(28, 8)DECLARE @bqbdc NUMERIC(28, 8)DECLARE @t VARCHAR(10)SET @qcyed = 120SET @qcyec = 200SET @bqbdd = 350SET @bqbdc = 500SET @t = 'Z'DECLARE @upsql NVARCHAR(MAX)SET @upsql = N'UPDATE tb_Rpt_ZCFZ SET Col=dbo.SetYE(' + LTRIM(@qcyed) + ',' + LTRIM(@qcyec) + ',' + LTRIM(@bqbdd) + ',' + LTRIM(@bqbdc) + ',' + @t + ') WHERE Sort=00'PRINT @upsql
[解决办法]