在将varchar值转换成数据类型int时失败
问题:就像下面这样createPROCEDURE[dbo].[mytest](@myTablevarchar(100),@myIntint)ASdeclare@strSQ...
问题:就像下面这样
create PROCEDURE [dbo].[mytest]
(
@myTable varchar(100),
@myInt int
)
AS
declare @strSQL varchar(1000);
set @strSQL ='select * from ' + @myTable + ' where id=' + @myInt
exec (@strSQL)
执行:exec mytest 'soft',10
显示错误:消息 245,级别 16,状态 1,过程 mytest,第 8 行
在将 varchar 值 'select * from soft where id=' 转换成数据类型 int 时失败。
这样可以解决: set @strSQL ='select * from ' + @myTable + ' where id=' + cast(@myInt as varchar(10))
但是两个都是int类型的,为什么还要转换?转换的话这不是要浪费性能吗?不转换姓名?怎么解决啊? 展开
create PROCEDURE [dbo].[mytest]
(
@myTable varchar(100),
@myInt int
)
AS
declare @strSQL varchar(1000);
set @strSQL ='select * from ' + @myTable + ' where id=' + @myInt
exec (@strSQL)
执行:exec mytest 'soft',10
显示错误:消息 245,级别 16,状态 1,过程 mytest,第 8 行
在将 varchar 值 'select * from soft where id=' 转换成数据类型 int 时失败。
这样可以解决: set @strSQL ='select * from ' + @myTable + ' where id=' + cast(@myInt as varchar(10))
但是两个都是int类型的,为什么还要转换?转换的话这不是要浪费性能吗?不转换姓名?怎么解决啊? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询