日期:2014-05-18  浏览次数:20551 次

带参数的存储过程
我用的是SQLserver2000的数据库
一个NewSystem数据库,包含一个Classes表,表中有一个ClassName列。
我想通过存储过程来查询,创建一个存储过程queryClass
存储过程定义如下:
use   NewSystem
go
create   procedure   queryClass
@condition   varchar(20),
@columnName   varchar(20)
as
select   ClassName
from   Classes
where   @columnName   =   @condition
go

然后我在SQL查询分析器中输入
exec   queryClass     'SoftTwo ', 'ClassName '
或者   exec   queryClass     'SoftTwo ',ClassName
或者   exec   queryClass     SoftTwo, 'ClassName '
或者   exec   queryClass     SoftTw ',ClassName
怎么就查不出结果啊~~
希望有高手帮我解决一下
注:不能该变这个存储过程的参数个数,
以上的存储过程只是我简化的,
其中我主要是想解决的是
where   ClassName   =   'SoftTwo '   ;
这2个参数一个有单引号一个没有单引号

------解决方案--------------------
create procedure queryClass
@condition varchar(20),
@columnName varchar(20)
as
declare @sql varchar(500)
set @sql= 'select ClassName
from Classes
where '+@columnName+ ' = '+@condition
go
------解决方案--------------------
gaojier1000(V2※高捷) ( ) 信誉:100 2007-08-15 10:23:12 得分: 0


试试!

-----------
你光拼結都沒有執行的。

create procedure queryClass
@condition varchar(20),
@columnName varchar(20)
as
declare @sql varchar(500)
set @sql= 'select ClassName
from Classes
where '+@columnName+ ' = ' ' '+@condition+ ' ' ' '
exec(@sql)
go