关于调用sql存储过程的,该怎么解决
关于调用sql存储过程的
alter proc SelectN
@newsid int,@TbaleName varchar(30)
as
declare @sql1 varchar(max)
set @sql1='select * from '+quotename(@TbaleName)+' where newsid='+CAST(@newsid as varchar(10))+''
exec @sql1
这是我写的存储过程
exec SelectN 32,news
这是调用语句
但是结果会出错:消息 203,级别 16,状态 2,过程 SelectN,第 6 行
名称 'select * from [news] where newsid=32' 不是有效的标识符。
这是为什么啊?求指导!
------解决思路----------------------
加个括号
alter proc SelectN
@newsid int,@TbaleName varchar(30)
as
declare @sql1 varchar(max)
set @sql1='select * from '+quotename(@TbaleName)+' where newsid='+CAST(@newsid as varchar(10))+''
exec @sql1
这是我写的存储过程
exec SelectN 32,news
这是调用语句
但是结果会出错:消息 203,级别 16,状态 2,过程 SelectN,第 6 行
名称 'select * from [news] where newsid=32' 不是有效的标识符。
这是为什么啊?求指导!
------解决思路----------------------
alter proc SelectN
@newsid int,@TbaleName varchar(30)
as
declare @sql1 varchar(max)
set @sql1='select * from '+quotename(@TbaleName)+' where newsid='+CAST(@newsid as varchar(10))+''
exec(@sql1)
加个括号