J'ai un logicApp Azure qui se connecte à une base de données SQL Server à Azure. La table dispose d'un Si i Comment est-il un pour obtenir le Rowid? Est-il possible de mettre à jour une ligne en utilisant uniquement la clé primaire? P>
mise à jour: p>
Le Ici, le logicApp nécessite un spécificateur Rowid, mais en utilisant le avec qui dit l'insert colonne "/ code> comme clé primaire. Dans l'application logique, la suppression ou la mise à jour nécessite le
Rowid code> pour effectuer la mise à jour, la touche principale ne fonctionne pas ici et jette une erreur lors de l'exécution, indiquant que la table n'a pas de clé primaire. Cela le fait et est également confirmé lors de l'insertion de la ligne deux fois dans le logicApp, il connaît la contrainte de la clé primaire, étant unique. p>
Obtenez des lignes code> et filtrez par la colonne de la clé principale, la matrice résultante répertorie chaque élément trouvé (celui évidemment) mais ne met pas à disposition le Rowid comme une expression dynamique. p>
uuid code> est généré en dehors du logicApp et est transmis à elle comme une chaîne.
Il convient de noter que l'insertion d'insertion fonctionne tout simplement bien. P>
uuid code> échoue. Je pensais que je pouvais alors chercher toutes les lignes filtrées par UUID et les mettre à jour, comme un travail autour, mais je ne pouvais pas obtenir le
Rowid code>. Une autre personne a eu un problème similaire ( https://stackoverflow.com/a/43516709/1298523 ) et n'a pas pu obtenir le
rowid code> sans modifier le code source; Toutefois, cette méthode d'ajout du railid dans la section du corps du code ne semble plus fonctionner car le résultat est vide.
L'erreur LogicApp que je reçois lors d'une
update code> ou
Supprimer code> Lorsque vous utilisez l'UUID, c'est: p>
{
"Statut": 400,
"Message": "Échec de l'exécution \ R \ N Intérieur Exception: Le tableau spécifié n'a pas de clé primaire. Les opérations de mise à jour et de suppression ne sont pas prises en charge. \ r \ nClientRequestid: 555",
"Source": "sql-555.p.azurewebsites.net"
} code> p>
code> va bien et que le
uuid code> je passe est placé dans la table. P>
3 Réponses :
Si vous avez une colonne par défaut (comme NeufID ()) sur la clé principale, supprimez-la. p>
Générez le caractère unique directement dans votre application logique et simplement l'insérer comme une autre colonne dans la table dans Azure SQL DB. Si vous le faites, vous avez déjà la valeur GUID que vous pouvez ensuite utiliser plus tard dans le même code d'application. P>
Si ce n'est pas le problème, je pense que vous devez nous donner du code à lire afin que nous puissions aider plus. P>
J'ai mis à jour ma question à être plus détaillé. Je génère l'UUID en dehors du logicApp et l'insertion de fonctionne fonctionne bien. C'est la mise à jour ou la suppression qui ne fonctionnent pas lorsque vous utilisez le même uuid, semble-t-il
Je l'ai compris, j'ai effectivement supprimé l'ensemble du logicApp et la reconstruit et il reconnaît désormais que la colonne UUID est une PK. Je crois que lorsque l'application est d'abord connectée à SQL, il stocke le schéma et jamais mis à jour par la suite. J'avais reconstruit la connexion à quelques reprises, mais la seule chose qui l'a amené à mettre à jour était en reconstruisant le logicApp même. Je suis un peu convaincu que ceci est un bug, alors je pars ici comme une réponse au cas où quelqu'un entre jamais dans cette question dans le futur p>
Vous pouvez l'accepter comme réponse. Cela peut être bénéfique pour les autres membres de la communauté. Merci.
Merci pour ce rappel. J'ai définitivement vécu cela dans le passé et que je suis en train de lire cela m'a aidé à résoudre mon problème ... Yep, il suffit de commencer avec des widgets frais pour le nouveau schéma.
Au lieu de reconstruire l'application logique à partir de zéro, vous pouvez plutôt appuyer sur "Actualiser" (à côté du bouton "Modifier" lorsque vous allez modifier votre application logique). Travaillé pour moi p>
Mettez une valeur par défaut de NewID () sur la colonne uniqueIdentifier.
Veuillez poster le code et le message d'erreur. Votre explication n'est pas assez spécifique.
@ Nick.mcdermaid j'ai mis à jour ma question, espérons que c'est plus précis merci