Microsoft Flow:SQL目标的字符串到GUID转换

问题描述 投票:4回答:1

我有一个Microsoft Flow,我想将记录插入Azure SQL表,我在插入从触发器生成的GUID时遇到问题。

Screnshot

当我检查它时,我映射的字段似乎是一个GUID格式,但是当流程执行时,看起来好像GUID在被推送到SQL之前被转换为字符串,这导致执行时出现以下转换错误( uniqueidentifier类型中的目标字段):

{
"status": 400,
"message": "Microsoft SQL: Conversion failed when converting from a character 
string to uniqueidentifier.\r\nclientRequestId: c3c1acb7-ca1a-443a-ab66- 
4a42ad0d28b1",
"source": "sql-ae.azconn-ae.p.azurewebsites.net"
}

源字段输出示例:“bookableresourcebookingid”:“bd403e0b-0337-e911-a86b-000d3ad11148”

我查看了文档here的GUID转换,但它们似乎都输出了一个新的GUID作为字符串而不是我想要的是将GUID ID作为唯一标识符输入到SQL表中。

如何将此GUID ID字段输入到SQL目标唯一标识符字段/将GUID字符串转换为唯一标识符?

sql-server azure-logic-apps
1个回答
0
投票

实际上,您共享的GUID值具有正确的格式,Azure SQL应该透明地将它们从string转换回uniqueidentifier。但是,它不会因某种原因发生。

我建议分析目标azure数据库并在插入失败的表上捕获DML操作。

遗憾的是,常规SQL Profiler在这种情况下不起作用,但SQL Auditing可以配置为将BLERTS写入BLOB存储上的XEL文件。所以你应该能够看到失败的确切INSERT语句,就像这样:

enter image description here

SQL审计本身就是一个很大的主题,但这里有一个如何实现它的例子:Azure SQL database auditing using Blob Storage

© www.soinside.com 2019 - 2024. All rights reserved.