SQL 服务器异步过程执行:如何传递 varbinary(MAX)?

SQL Server async procedure execution: how to pass varbinary(MAX)?

我阅读并了解 Remus Rusanu 提供的用于异步存储过程执行的出色解决方案

https://github.com/rusanu/async_tsql

使用 varbinary(MAX) 类型的参数执行存储过程的好方法是什么?

如何实现这种异步过程调用?

不幸的是,您不能使用他文章中的 sql_variant 技术来完成此操作。但是,没有什么能阻止您将 Service Broker 消息声明为 VALIDATION = NONE:

CREATE MESSAGE TYPE
    [//Adventure-Works.com/Expenses/ReceiptImage]
    VALIDATION = NONE ;

这允许您将自由格式的二进制数据作为消息发送,并将其直接传递给您的处理程序。如果你要发送任何 other 而不是单个 varbinary(max),它肯定会受到更多限制,但对于你所要求的它会起作用。