U kunt een trigger niet behandelen alsof deze één rij tegelijk afhandelt. Als het invoegen gebeurt met behulp van een clausule met meerdere waarden of een geneste selectie, wordt de trigger één keer geactiveerd voor de hele bewerking, wat betekent dat u altijd maar één willekeurige @UserID zult verwerken.
Hier neem ik aan dat je PlaneGPSCoördinatentabel precies 5 rijen heeft, en dat dat de coördinaten zijn die elke nieuwe gebruiker krijgt.
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
Maar dit roept de vraag op, waarom dezelfde coördinaten voor elke gebruiker kopiëren? Is dit iets dat ze vaak gaan updaten, wil je daar om te beginnen gewoon wat standaardwaarden in zetten?