加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 将数组参数传递给存储过程

发布时间:2020-12-12 06:20:26 所属栏目:MsSql教程 来源:网络整理
导读:我有一个进程可以抓取一堆记录(1000个)并对它们进行操作,当我完成后,我需要将大量记录标记为已处理.我可以用一大堆ID来表明这一点.我试图避免“循环更新”模式,所以我想找到一种更有效的方法将这个ID包发送到MS SQL Server 2008存储过程中. 提案#1 – 表值参
我有一个进程可以抓取一堆记录(1000个)并对它们进行操作,当我完成后,我需要将大量记录标记为已处理.我可以用一大堆ID来表明这一点.我试图避免“循环更新”模式,所以我想找到一种更有效的方法将这个ID包发送到MS SQL Server 2008存储过程中.

提案#1 – 表值参数.我可以定义一个只有ID字段的表类型,并在一个完整的ID表中发送以进行更新.

建议#2 – 在proc主体中使用OPENXML()的XML参数(varchar).

提案#3 – 列出解析.如果可能的话,我宁愿避免这种情况,因为它看起来很笨拙且容易出错.

这些中的任何偏好,或者我错过的任何想法?

解决方法

有关此问题的最佳文章是由Erland Sommarskog撰写的:

> Arrays and Lists in SQL Server 2008 – Using Table-Valued Parameters
> Arrays and Lists in SQL Server 2005 and Beyond- When TVPs Do Not Cut it
> Arrays and Lists in SQL Server 2000 and Earlier

他涵盖了所有选项,并解释得很好.

很抱歉答案很简短,但Erland关于Arrays的文章就像Joe Celko关于树木和其他SQL对待的书籍:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读