在将 varchar 值 'select' 转换成数据类型 int 时失败。

BJBJING 2012-06-21 10:13:53

set @Sqlquery='select' + @RowCount+'=count(*) from '+@From+' where '+@WhereStr
exec sp_executesql @Sqlquery,N'@RowCount int output',@RowCount output
set @Sqlquery='select * from ('+
'select,
a.BOEPCode,
a.ProjectName,
a.CustomerName,
k.OSID AS OSCode,
k.ISID AS ISCOde,
k.TradeManagerID,
e.SalesTypeName,
在数据库里编译通过,一运行就报类型转换错误,麻烦各位帮忙看看是存储过程写的有问题吗?
...全文
553 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
宝_爸 2012-06-21
  • 打赏
  • 举报
回复
set @Sqlquery='select' + @RowCount+'=count(*) from '+@From+' where '+@WhereStr
print @Sqlquery
exec sp_executesql @Sqlquery,N'@RowCount int output',@RowCount output

打印一下,看看语句对不对,我觉得'select' + @RowCount+'=count(*) from ‘ 这块不太对头。
bdmh 2012-06-21
  • 打赏
  • 举报
回复
看看你字段中是否有不能被转为int的内容,比如空或非数字字符
BJBJING 2012-06-21
  • 打赏
  • 举报
回复
那您看这样写对吗: set @Sqlquery='select @RowCount=count(*) from '+@From+' where '+@WhereStr
Ny-6000 2012-06-21
  • 打赏
  • 举报
回复

declare @ii int
declare @str varchar(3333)
set @ii =10
set @str='SELECT TOP ' + cast(@ii as varchar(4)) +' FROM [HsCode_G].[dbo].[Users]'
print @str


上面说法写得有点错了.
Ny-6000 2012-06-21
  • 打赏
  • 举报
回复
set @Sqlquery='select' + CAST(@RowCount,VARCHAR(4)) +'=count(*) from '+@From+' where '+@WhereStr


-----------
类似上面,你得先转换一下类型,才能相应拼接
BJBJING 2012-06-21
  • 打赏
  • 举报
回复
那应该怎么改呢?纠结一上午了,就是不对

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧