Du kan inte behandla en trigger som om den hanterar en rad i taget. Om infogningen sker med hjälp av en sats med flera värden eller en kapslad markering, kommer utlösaren att aktiveras en gång för hela operationen, vilket innebär att du bara kommer att hantera ett godtyckligt @UserID.
Här antar jag att din PlaneGPSCordinates-tabell har exakt 5 rader, och att det är koordinaterna som varje ny användare får.
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
Men detta väcker frågan, varför kopiera samma koordinater för varje användare? Är detta något de kommer att uppdatera ofta, vill du bara lägga in några standardvärden där till att börja med?