如何在 SQL Server 中批量更新插入?
我正在使用 MERGE 语句在 sql server 2008 数据库中更新插入行。然而,我的存储过程是单行操作,而实际上我更喜欢对这些操作进行批处理。这是否可能?如果可以,我该怎么做?
I'm using the MERGE
statement to upsert rows in an sql server 2008 database. However, my sproc is a single-row operation, whereas in fact I'd prefer to batch these. Is this even possible and, if so, how do I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在您的过程中使用表值参数吗?看看这里 http://www.sommarskog.se/arrays-in -sql-2008.html#TVP_in_TSQL 获得一些想法
然后在过程中您可以对 TVP 使用 MERGE
Can you use Table-Valued Parameters in your proc? Take a look here http://www.sommarskog.se/arrays-in-sql-2008.html#TVP_in_TSQL to get some ideas
Then in the proc you can use MERGE against the TVP
我创建了一个名为“upsert”的过程,它采用源表名称、目标表名称、要连接的字段和要更新的字段(字段用逗号分隔),然后动态合并。
代码如下。
i have created a proc called 'upsert' which takes a source table name, target table name, fields to join on, and fields to update (fields are separated by commas) and then does the merge dynamically.
code is below.