【发布时间】:2019-10-30 22:04:46
【问题描述】:
我有一个 Azure 逻辑应用程序,它连接到 Azure 中的 SQL Server 数据库。该表有一个uniqueidentifier 列作为主键。在逻辑应用中,删除或更新需要rowid 才能执行更新,主键在此处不起作用并在运行时引发错误,说明表没有主键。它确实如此,并且在它知道主键约束的逻辑应用程序中插入一行两次时另外确认,它是唯一的。
如果我Get Rows 并按主键列过滤,则结果数组会列出找到的每个项目(显然是那个),但不会将 rowid 作为动态表达式提供。
如何真正获得rowid?是否可以仅使用主键更新行?
更新:
uuid 在 logicapp 之外生成,并作为字符串传递给它。
需要注意的是,插入效果很好。
这里的 logicapp 需要一个 rowid 说明符,但使用 uuid 失败。我想我可以改为通过 uuid 过滤所有行并更新它们,作为一种解决方法,但我无法获得rowid。另一个人有类似的问题(https://stackoverflow.com/a/43516709/1298523),如果不编辑源代码就无法获得rowid;但是,这种在代码正文部分添加 rowid 的方法似乎不再有效,因为结果为空。
我在使用 uuid 时在 update 或 delete 期间收到的 logicapp 错误是:
{
"status": 400,
"message": "Execution Failure\r\n inner exception: The specified table has no primary key. Update and delete operations are not supported.\r\nclientRequestId: 555",
"source": "sql-555.p.azurewebsites.net"
}
话虽如此,insert 很好,uuid I pass get 被放入表中。
【问题讨论】:
-
将默认值 newid() 放在 uniqueidentifier 列上。
-
请贴出代码和错误信息。你的解释不够具体。
-
@Nick.McDermaid 我更新了我的问题,希望它更具体,谢谢
标签: sql sql-server azure azure-sql-database azure-logic-apps