Vous ne pouvez pas traiter un déclencheur comme s'il gérait une ligne à la fois. Si l'insertion se produit à l'aide d'une clause multi-valeurs ou d'une sélection imbriquée, le déclencheur se déclenchera une fois pour toute l'opération, ce qui signifie que vous ne gérerez qu'un seul @UserID arbitraire.
Ici, je suppose que votre table PlaneGPSCoordinates a exactement 5 lignes, et que ce sont les coordonnées que chaque nouvel utilisateur obtient.
CREATE TRIGGER dbo.Matching
ON dbo.UserInfo
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
INSERT dbo.MatchingInformation(GPS1, GPS2, UserID)
SELECT p.GPS1, p.GPS2, i.UserID
FROM dbo.PlaneGPSCoordinates AS p
CROSS JOIN inserted AS i;
END
GO
Mais cela soulève la question, pourquoi copier les mêmes coordonnées pour chaque utilisateur ? Est-ce quelque chose qu'ils vont mettre à jour souvent, vous voulez juste mettre quelques valeurs par défaut pour commencer ?