J'ai une séquence que j'ai besoin d'utiliser pour recalculer les deux champs de la clé primaire si une correspondance de mise à jour n'est pas trouvée. Est-il possible d'utiliser encore la déclaration MERGE ici? J'ai essayé QUAND MATCHED PUIS BEGIN, mais BEGIN n'est pas valide ici.Étapes multiples sur QUAND NON CORRESPONDANT possible?
Spécifiquement, j'ai une paire de nombres qui composent la clé primaire. Le premier est un regroupement, et le second est une séquence d'éléments dans le groupe. Si quelque chose ne va pas, le groupe arrive en 99990, et je dois le combiner avec la séquence et utiliser une séquence pour l'incrémenter, puis le séparer en deux. Donc, quand le groupe arrive avec 99990, mes groupes calculés peuvent aller de 99990 à 99999, et le numéro de séquence va alors de 00 à 99.
Je ne vois pas de moyen de le faire dans le cadre de l'affectation INSERT, et je ne peux pas comprendre comment faire le MERGE faire plusieurs étapes, donc je suppose que je suis de retour à UPDATE, IF @@ ROWCOUNT = 0 BEGIN. Quelqu'un a un moyen plus rapide de le faire?
Quels SGBD utilisez-vous? A en juger par le '@@ rowcount' probablement SQL Server? –
C'est SQL Server, comme vous l'avez supposé. – knockNrod