您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 其他数据库 >> sqlserver 动态sql cast出错

sqlserver 动态sql cast出错

来源:网络整理     时间:2016/5/19 22:05:02     关键词:sqlserver

关于网友提出的“sqlserver 动态sql cast出错”问题疑问,本网通过在网上对“sqlserver 动态sql cast出错”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:sqlserver 动态sql cast出错
描述:

如下红色部分为什么转换老是出错,我写成定值可以,写成cast(@i as nvarchar)可以,为什么写成cast((@i-1) as nvarchar)就出错呢?

set @str = SUBSTRING(@context,6, 1);
    set @i = CAST(SUBSTRING(@context,7, 1) as int);
    if @i = 1
    begin
     set @sql=N'set @strnum = (select top 1 * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) + ''','',''))';
    end
    else
     begin
     set @sql=N'set @strnum = (select top ' + CAST(@i as nvarchar) + ' * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) + ''','','')
     except
     select top '+cast((@i-1) as nvarchar) +' * from LuckyStation.dbo.f_splitstr('''+ rtrim(@win_code) +''','',''))';
    end
    set @paraDefine = N'@strnum nvarchar(50) output';
    exec sp_executesql @sql,@paraDefine,@strnum output


解决方案1:

你好,~那个

CAST((@i - 1) AS nvarchar)那里你改成

CAST((@i - 1) AS nvarchar(500))试试.~我以前也碰到这破问题

症状应该跟你的非常类似.

http://www.cnblogs.com/highend/archive/2010/03/13/1685099.html

解决方案2:

楼上正确,应该是你没写长度。


以上介绍了“sqlserver 动态sql cast出错”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1186602.html

相关图片

相关文章