Nemůžete zacházet se spouštěčem, jako by zpracovával jeden řádek najednou. Pokud k vložení dojde pomocí klauzule s více hodnotami nebo vnořeného výběru, spouštěč se spustí jednou pro celou operaci, což znamená, že budete vždy zpracovávat pouze jedno libovolné @UserID.
Zde předpokládám, že vaše tabulka PlaneGPSCoordinates má přesně 5 řádků a že to jsou souřadnice, které získá každý nový uživatel.
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
To však vyvolává otázku, proč kopírovat stejné souřadnice pro každého uživatele? Je to něco, co budou často aktualizovat, jen tam chcete pro začátek vložit nějaké výchozí hodnoty?