У меня есть Azica Logicapp, который подключается к базе данных SQL Server в Azure. Таблица имеет столбец uniqueidentifier
в качестве первичного ключа. В приложении логики для удаления или обновления требуется rowid
, чтобы выполнить обновление, первичный ключ здесь не работает и выдает ошибку при запуске, утверждая, что таблица не имеет первичного ключа. Это происходит, и это дополнительно подтверждается при вставке строки дважды в logicapp, который знает об ограничении первичного ключа, будучи уникальным.
Если I Get Rows
и выполнить фильтрацию по столбцу первичного ключа, результирующий массив перечисляет каждый найденный элемент (очевидно, один), но не делает rowid в качестве динамического выражения.
Как можно получить rowid? Можно ли обновить строку, используя только первичный ключ?
ОБНОВЛЕНИЕ:
uuid
генерируется вне logicapp и передается ему в виде строки. Следует отметить, что вставка работает просто отлично.
Здесь logicapp требует спецификатор rowid, но использование uuid
не удается. Тогда я подумал, что вместо этого смогу отфильтровать все строки по uuid и обновить их, как обходной путь, но я не смог получить rowid
. У другого человека была похожая проблема (https://stackoverflow.com/a/43516709/1298523)), и он не мог получить rowid
без редактирования исходного кода; однако этот метод добавления rowid в раздел body кода больше не работает, так какпусто. Ошибка logicapp, которую я получаю во время update
или delete
при использовании uuid:
{
"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
, который я передаю, помещается в таблицу.
Вставьте результат: