存储过程参数问题
有如下存储过程:
create pruc aaa
@a varchar(1000)
as
select * from 表1 where 字段1 in (@a)
go
在执行exec aaa 时,想将参数 '001 ', '002 '赋值进去,不知如何操作。。
也就是说,想得到如下select * from 表1 where 字段1 in ( '001 ', '002 ')
查询效果,但一定要用到这个存储过程,不知如何操作?
------解决方案--------------------create pruc aaa
@a varchar(1000)
as
exec( 'select * from 表1 where 字段1 in ( '+@a+ ') ')
go
exec aaa ' ' '001 ' ', ' '002 ' ' '
------解决方案-------------------- '001 ' '002 ' 加单引号 应该表示是字符型 吧 还是把引号也算进去
------解决方案--------------------用exec (@sql)执行
------解决方案--------------------create pruc aaa
@a varchar(1000)
as
exec( 'select * from 表1 where 字段1 in ( '+@a+ ') ')
go
exec aaa ' ' '001 ' ', ' '002 ' ' '
===========================
他的可以
------解决方案--------------------declare @sql nvarchar(1000)
set @sql= 'print ' ' ' ' ' 'aa ' ' ' ', ' ' ' 'bb ' ' ' ' ' ' '
execute(@sql)
--equals
print ' ' 'aa ' ', ' 'bb ' ' '
自己对照一下就知道在execute的时候需要的 '的个数了