sql中用一个参数如何向存过传入一组值,且可单个调用,
答案:3 悬赏:70
解决时间 2021-12-22 13:14
- 提问者网友:清茶柒夏
- 2021-12-21 20:29
sql中用一个参数如何向存过传入一组值,且可单个调用,
最佳答案
- 二级知识专家网友:厭世為王
- 2021-12-21 20:37
用xml传值这说法真不错!
不过据我所知,declare @parameters xml;但是不能由外部传入,而且好象不能在表外使用。
所以考虑使用这样的方式:传入一个参数,按一定的分隔符传递,但这种方式也有却点。参数长度有限制,还有一种方法叫默认参数。
create procdure message(
@parameters0 varchar(max),
@parameters1 varchar(max) = null,
@parameters2 varchar(max) = null,
....................................
)
as
begin
---处理语句
end
由于从第二个参数开始,使用了=后跟了一个默认值,也就是你可以不输入,也可以输入。
execute message; --这句是不对的,必须要求输入一个参数
execute message '.........';--这句是对的,因为我第一个参数是强制要求的
execute message '.....','....';--这句也是对的,因为他支持第二个参数。
该参数列表最多支持2100个参数,这种形式还是合用的,而且专门用来传入数据组类结果,但数组类结构不得大于2100组,同时第一个参数也可以不强制。能很好地与程序接口。
需要注意的是,我们不般不常用,因为这种写法等于是程序与数据库的耦合性较高,而在程序设计时我们一般尽量避免这种耦合性较高的设计。
不过据我所知,declare @parameters xml;但是不能由外部传入,而且好象不能在表外使用。
所以考虑使用这样的方式:传入一个参数,按一定的分隔符传递,但这种方式也有却点。参数长度有限制,还有一种方法叫默认参数。
create procdure message(
@parameters0 varchar(max),
@parameters1 varchar(max) = null,
@parameters2 varchar(max) = null,
....................................
)
as
begin
---处理语句
end
由于从第二个参数开始,使用了=后跟了一个默认值,也就是你可以不输入,也可以输入。
execute message; --这句是不对的,必须要求输入一个参数
execute message '.........';--这句是对的,因为我第一个参数是强制要求的
execute message '.....','....';--这句也是对的,因为他支持第二个参数。
该参数列表最多支持2100个参数,这种形式还是合用的,而且专门用来传入数据组类结果,但数组类结构不得大于2100组,同时第一个参数也可以不强制。能很好地与程序接口。
需要注意的是,我们不般不常用,因为这种写法等于是程序与数据库的耦合性较高,而在程序设计时我们一般尽量避免这种耦合性较高的设计。
全部回答
- 1楼网友:眠于流年
- 2021-12-21 22:03
用XML类型的参数
- 2楼网友:心痛成瘾
- 2021-12-21 21:12
你好!
这个看具体应用
可以定义一个参数
在存储过程中分割这个参数
比喻:需要传递 1 2 3 4 ,则传入 '1,2,3,4'这种方式
我的回答你还满意吗~~
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |