SQL Server au lieu de triggersr l'instruction d'insertion avec des variables et des valeurs de l'inséré

J'ai un au lieu de triggersur. J'ai une valeur dans une variable.

Je voudrais insert la valeur dans une des colonnes et utiliser les champs d'insérés. C'est ce que j'essaie d'accomplir:

declare @someLocalVariable varchar(9) set @someLocalVariable = dbo.someLocalUDF() INSERT myTable (field1, field2, field3) VALUES (@someLocalVariable, (select field2, field3 from inserted)) 

 INSERT INTO myTable ( field1, field2, field3 ) SELECT @someLocalVariable, field2, field3 FROM INSERTED 

Souvenez-vous simplement que si cela a été déclenché par une insertion par lots (c'est-à-dire que INSERTED a plus d'un logging), tous les loggings seront également insérés dans la table cible.

(Ce qui est exactement ce qu'il devrait faire à mon humble avis, mais pour une raison quelconque les gens oublient généralement à ce sujet.)

modifier

Le PO a oublié de dire quelle était vraiment sa question: générer des valeurs keys uniques. Donc, dans ce cas, une façon de procéder serait quelque chose comme ceci:

 CREATE TRIGGER dbo.InsteadOfInsertMyTable ON MyTable INSTEAD OF INSERT AS BEGIN INSERT INTO myTable ( primaryKeyField, field2, field3 ) SELECT dbo.someUniqueValueGeneratorUDF(), field2, field3 FROM INSERTED END GO