Bạn không thể coi một trình kích hoạt như thể nó xử lý từng hàng một. Nếu việc chèn xảy ra bằng cách sử dụng mệnh đề nhiều giá trị hoặc một lựa chọn lồng nhau, trình kích hoạt sẽ kích hoạt một lần cho toàn bộ hoạt động, có nghĩa là bạn sẽ chỉ xử lý một @UserID tùy ý.
Ở đây tôi giả sử rằng bảng PlaneGPSCoferences của bạn có chính xác 5 hàng và đó là các tọa độ mà mọi người dùng mới nhận được.
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
Nhưng điều này đặt ra câu hỏi, tại sao lại sao chép cùng một tọa độ cho mọi người dùng? Đây có phải là thứ mà họ sẽ cập nhật thường xuyên, bạn chỉ muốn đặt một số giá trị mặc định ở đó để bắt đầu?