sql 在将 nvarchar 值 转换成数据类型 int 时失败。
2016-07-07 11:13
2021 查看
假设有存储过程:proc_test2
create proc proc_test2
@Id int
begin
as
declare @sql varchar(max)
@sql = 'select * from test2 where 1=1'
if @Id <> 0
set @sql += ' and Id = ' +@Id
exec (@sql)
end
存储过程需要的参数是int类型,按道理直接传值(+@Id)是没有问题的,但是在执行存储过程的时候,却弹出
“sql 在将 nvarchar 值 转换成数据类型 int 时失败。”
这时候你需要转换一下就ok了!
正解是:set @sql += ' and Id = ' +Cast([b]@Id as nvarchar(50))[/b]
create proc proc_test2
@Id int
begin
as
declare @sql varchar(max)
@sql = 'select * from test2 where 1=1'
if @Id <> 0
set @sql += ' and Id = ' +@Id
exec (@sql)
end
存储过程需要的参数是int类型,按道理直接传值(+@Id)是没有问题的,但是在执行存储过程的时候,却弹出
“sql 在将 nvarchar 值 转换成数据类型 int 时失败。”
这时候你需要转换一下就ok了!
正解是:set @sql += ' and Id = ' +Cast([b]@Id as nvarchar(50))[/b]
相关文章推荐
- psql中的\x命令
- Redis - HyperLogLogs
- Sqoop导入关系数据库到Hive
- 如何将mysql数据库的表导出到本地csv格式
- Redis学习三:redis的sentinel使用
- 关于mysql 删除数据后物理空间未释放(转载)
- java redis demo关于List<Integer>,List<String>
- mybatis动态SQL语句整理
- mysql时间的一些计算
- sql复制表结构及内容
- 查询本次以及上次记录同时显示
- SpringMVC整合Mongodb开发 架构搭建
- 数据库-锁的实践
- mysql的建表语句
- Java redis demo List<User>
- SpringMVC整合Mongodb开发,高级操作
- redis限制单ip、单用户的访问次数
- MySQL之索引优化
- c# 访问oracle数据库
- session入mysql