Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Microsoft流:SQL目标的字符串到GUID的转换_Sql Server_Azure Logic Apps - Fatal编程技术网

Sql server Microsoft流:SQL目标的字符串到GUID的转换

Sql server Microsoft流:SQL目标的字符串到GUID的转换,sql-server,azure-logic-apps,Sql Server,Azure Logic Apps,我有一个Microsoft流,我想在Azure SQL表中插入一条记录,但插入触发器生成的GUID时遇到问题 我从中映射的字段在我检查它时似乎是GUID格式,但是当流执行时,它看起来好像GUID在被推送到SQL之前被转换为字符串,这导致执行时出现以下转换错误(uniqueidentifier类型的目标字段): 源字段输出示例: “bookableresourcebookingid”:“bd403e0b-0337-e911-a86b-000d3ad11148” 我已经浏览了有关GUID转换的文档

我有一个Microsoft流,我想在Azure SQL表中插入一条记录,但插入触发器生成的GUID时遇到问题

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

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

我已经浏览了有关GUID转换的文档,但是它们似乎都以字符串形式输出新的GUID,而不是按照我的要求将GUID ID作为唯一标识符输入到SQL表中


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

事实上,您共享的GUID值格式正确,Azure SQL应透明地将其从
字符串转换回
唯一标识符。然而,由于某些原因,它并没有发生

我建议评测目标azure数据库,并在插入失败的表上捕获DML操作

不幸的是,常规SQL探查器在这种情况下无法工作,但可以将SQL审核配置为将插入写入BLOB存储上的XEL文件。因此,您应该能够看到失败的INSERT语句,如下所示:


SQL audit本身就是一个大话题,但下面是一个如何实现它的示例:

这很不幸,我希望我只是错过了转换为唯一标识符的代码,但看起来微软对微软并不友好。由于这是主键,根据上面的审核建议,每次插入都会失败,因此我可以看到的唯一选项是创建一个带有varchar类型字段的临时表,以将GUID作为字符串插入,然后在Azure中运行一个存储过程以导入到我需要的表中,并在此过程中将字符串转换为GUID。
{
"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"
}