SQL变量后面赋值多个的问题
EXEC***(存储过程)@name='张三'================以上是正常执行的做法但我想问:@name后面能放多个值吗?例如:@namein('张三','...
EXEC ***(存储过程)
@name='张三'
================
以上是正常执行的做法
但我想问:
@name后面能放多个值吗?例如:@name in ('张三','李四')
@name后面能跟子查询吗?例如:@name in (select name from contacts)
如果不行,能有其他什么方法吗?
请教!!!
存储过程是系统的,我不能随便改动
另:
请有方法或者语句的,麻烦帮我写出来哦,感谢了! 展开
@name='张三'
================
以上是正常执行的做法
但我想问:
@name后面能放多个值吗?例如:@name in ('张三','李四')
@name后面能跟子查询吗?例如:@name in (select name from contacts)
如果不行,能有其他什么方法吗?
请教!!!
存储过程是系统的,我不能随便改动
另:
请有方法或者语句的,麻烦帮我写出来哦,感谢了! 展开
3个回答
展开全部
你可以传入字符串,然後在存储过程中组成sql 後再执行
如
create procedure test_sp
@subq varchar(100)
as
begin
declare @sql varchar(500)
set @sql = 'select * from table1 where name in(' + @subq + ')'
exec (@sql)
end
执行时
exec test_sp 'select name from contacts'
如
create procedure test_sp
@subq varchar(100)
as
begin
declare @sql varchar(500)
set @sql = 'select * from table1 where name in(' + @subq + ')'
exec (@sql)
end
执行时
exec test_sp 'select name from contacts'
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多1楼传入多麻烦,万一存储的参数很多,还要用写语句。
可以考虑在存储过程中定义成字符串得出想要的@name不就好了
可以考虑在存储过程中定义成字符串得出想要的@name不就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询