【问题标题】:How to send multiple commands to SQL Server 2008 with one round trip如何通过一次往返向 SQL Server 2008 发送多个命令
【发布时间】:2012-01-23 17:13:20
【问题描述】:

我想在一次往返中向 sql server 数据库发送多个参数化更新、插入和删除命令。我查看了 sqlbulkcopy,但它似乎一次只能使用一个映射/表/语句。我希望有一些更灵活的东西。我不需要从任何查询中获得任何结果(即:受影响的行数),但我确实希望将故障传播回应用层,以便可以回滚事务。有什么想法吗?

附带问题:我还想知道 nHibernate 是如何做到的,只是因为它经过验证并且是真实的并且看起来表现良好。我尝试查看 nhibernate 源代码,但不清楚它是如何进行批处理的。我可以回到源头,但希望有人知道,高水平,它是如何处理的,并且可以向我解释。

【问题讨论】:

    标签: .net sql-server-2008 nhibernate ado.net


    【解决方案1】:

    CommandType 设置为Text,并用分号分隔您的命令。您最终会得到一个巨大的命令,您可能需要以编程方式生成其参数名称(以避免冲突)。

    【讨论】:

    • 这让我觉得自己很笨……哈!
    【解决方案2】:

    如果我没记错的话 SqlCommandBuilder 会帮助你:)。 SqlCommandBuilder

    【讨论】:

    • 我在命令生成器的文档中没有看到任何关于使用多条语句构建命令的内容......我找到了一些可以构建更新、插入或删除命令的东西,但没有批处理它们(即:将它们放在一个命令中)。
    猜你喜欢
    • 2011-01-21
    • 2017-07-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2015-02-19
    • 2011-10-05
    • 2018-06-16
    相关资源
    最近更新 更多