stored-procedures - 来自 DocumentDB 存储过程的触发触发器

标签 stored-procedures triggers azure-cosmosdb

我们有一个以 bulkImport 为模型的存储过程。 DocumentDB 示例代码中的 sproc。这个 sproc 接受一个文档数组,做一些事情,并最终调用 createDocument,它是 documentation说是异步的。

现在我们已经为 Create 编写了一个预触发器,它检查一些字段并可选地向请求的某些文档添加一些附加字段。

{
    "id":"triggerNameRedacted",
    "triggerType": "Pre",
    "triggerOperation": "Create",
    "body": "function()
        { 
            var context = getContext(); 
            var request = context.getRequest();
            var documentToCreate = request.getBody();
            documentToCreate.msg = 'got to here';
            request.setBody(documentToCreate); 
        }"
}

我们将此附加到 options我们传递给的对象 createDocument在我们的程序中。
var options = {
    disableAutomaticIdGeneration: false,
    preTriggerInclude: 'triggerNameRedacted'
};

我们期望看到触发器被调用。但是,触发器没有被触发。我们尝试了各种修改来尝试查看触发器被触发,但仍然没有:将批量 sproc 和触发器减少到绝对最小值,将 triggerOperation 更改为“全部”。

source对于服务器端包装器,以及在上面链接的 Collection 文档中,服务器端代码似乎没有查看任何 *Trigger*选项对象的字段,例如preTriggerInclude就像我们的情况一样。

是否可以通过调用 createDocument 执行预创建触发器?在存储过程中,或者对 calling a stored procedure from another stored procedure 进行限制适用于任何服务器端代码?

最佳答案

无法从服务器端 SDK 调用触发器(例如,从另一个触发器或 sproc 内部)。

关于stored-procedures - 来自 DocumentDB 存储过程的触发触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30853186/

相关文章:

azure - 当请求超出预留 RU 时,Azure Cosmos Db 如何决定拒绝请求?

vb.net - Oracle 日期字段 - 时间问题

SQL Server 错误 208 : Invalid object name 'Utils.dbo.ChangeLogging_DDLCommands'

php - 添加另一个条件过程

.net - 我应该使用 WPF 转换器还是触发器?

javascript - Jest Test中触发事件不调用Method

.net - Cosmos DB 和 DevOps 自动化

MySQL存储过程从in参数设置动态查询

MySQL-在插入满足其他值的位置后触发更新另一个表中的列

java - Cosmos Db 回复消息长度错误使用 mongo java 驱动程序执行查找