sql >> Database teknologi >  >> RDS >> Sqlserver

Indsæt Statement + Kombinerer tabeldata og variabel i trigger

Du kan ikke behandle en trigger, som om den håndterer en række ad gangen. Hvis indsættelsen sker ved hjælp af en klausul med flere værdier eller et indlejret udvalg, udløses triggeren én gang for hele operationen, hvilket betyder, at du kun vil håndtere ét vilkårligt @BrugerID.

Her går jeg ud fra, at din PlaneGPSCordinates-tabel har præcis 5 rækker, og at det er de koordinater, som hver ny bruger 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 dette rejser spørgsmålet, hvorfor kopiere de samme koordinater for hver bruger? Er det noget, de vil opdatere ofte, vil du bare have nogle standardværdier der til at starte med?




  1. Returner Pandas dataramme fra PostgreSQL-forespørgsel med sqlalchemy

  2. hierarki forespørgsel sql server 2008

  3. HAS_DBACCESS() – Find ud af, om en bruger kan få adgang til en database i SQL Server

  4. Flet mange data som én data