存储过程传参数问题(50分)

  • 主题发起人 主题发起人 yj3385
  • 开始时间 开始时间
Y

yj3385

Unregistered / Unconfirmed
GUEST, unregistred user!
存储过程式为:
Create proc aa
@aa Varchar(20)
as
select * from table where bb in ('1','2')
问题是我如何用传过来参数来替换'1','2'
而变成select * from table where bb in (参数名)
 
Create proc aa
@aa Varchar(20)
as
declare @cc char(20), @dd char(255)
select @dd='select * from table where bb in (''' + @aa + ''''
exec @dd
 
同意樓上
 
Create proc aa
@aa Varchar(20)--格式('1','2')
as
execute(' select * from table where bb in'+ @aa)
 
94,既然想在程序运行时让存储过程动态接受可变参数,那就不要把它们声明为常量啊
 
Create proc aa
@aa Varchar(20)
as
declare @cc char(20), @dd char(255)
select @dd='select * from table where bb in (''' + @aa + ''')'
exec aa '3'
 
那定义一个@cc干嘛呢?好像都没有用到。
 
谢谢大虾们帮忙,但Varchar长度有限制,当长度超出它的最大长度时它自动截取,
那如何办呢?
 
后退
顶部