问题如下:
在存储过程中有这么一段语句:
create procedure p_pro
@para_tableName varchar(50),
@para_ID int,
@re_Info int output
as
if exists(select * from @para_tableName where tableID=@para_ID)
set @re_Info=1
else
set @re_Info=0
GO就是这么一个简单的语句,但是这里有一个问题,就是 “@para_tableName” 是一个存储过程参数变量,其值是由C#程序调用的时候给定的,但是在存储过程中是不能直接用变量代替表名的,请问该怎么写?
前边有朋友说用Exec,但是这样怎么执行判断并为@re_Info付值呢?
在存储过程中有这么一段语句:
create procedure p_pro
@para_tableName varchar(50),
@para_ID int,
@re_Info int output
as
if exists(select * from @para_tableName where tableID=@para_ID)
set @re_Info=1
else
set @re_Info=0
GO就是这么一个简单的语句,但是这里有一个问题,就是 “@para_tableName” 是一个存储过程参数变量,其值是由C#程序调用的时候给定的,但是在存储过程中是不能直接用变量代替表名的,请问该怎么写?
前边有朋友说用Exec,但是这样怎么执行判断并为@re_Info付值呢?
set @sql='select * from '+@para_tableName+' where tableID='+@para_ID
execute(@sql)
begin
set @re_Info=0
end
else
begin
set @re_Info=1
end
或sp_executesql,sp_Execute