Lors de la création d'un nouvel enregistrement dans une table, je dois créer un enregistrement dans chacune des deux autres tables (b et c). Le truc, c'est que les deux nouveaux enregistrements doivent avoir la même valeur PK, qui doit être de type UNIQUEIDENTIFIER et est donc générée à l'aide de NEWID() et n'a aucun lien avec la clé de l'enregistrement d'origine. Donc, ce que je veux faire dans le DÉCLENCHEUR INSERT ressemble à ceci :
INSERT INTO [b] ([bKey], [Foo])
OUTPUT inserted.[bKey] [cKey], i.[Bar] INTO [c]
SELECT NEWID(), i.[Foo] FROM inserted i
Cependant, cela semble être illégal (Dans une clause OUTPUT dans un déclencheur INSTEAD OF INSERT, est-il possible de faire référence aux deux tables INSERTED?). Y a-t-il un moyen de le faire autrement qu'en utilisant un CURSEUR et une variable pour le résultat de NEWID()?