我有一个Microsoft Flow,我想将记录插入到Azure SQL表中,但是无法插入由触发器生成的GUID。
我正在从中映射的字段在我检查它时似乎是一种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字符串转换为唯一标识符?
答案 0 :(得分:0)
实际上,您共享的GUID值具有正确的格式,Azure SQL应该透明地将它们从string
转换为uniqueidentifier
。但是,由于某种原因它不会发生。
我建议分析目标Azure数据库,并在插入失败的表上捕获DML操作。
不幸的是,在这种情况下,常规的SQL Profiler将无法工作,但是可以配置SQL审核来将INSERTS写入BLOB存储上的XEL文件中。因此,您应该能够看到失败的确切INSERT语句,就像这样:
SQL审计本身就是一个很大的话题,但是这里有一个实现它的示例:Azure SQL database auditing using Blob Storage