sql >> Database >  >> RDS >> Sqlserver

Instructie invoegen + Tabelgegevens en variabele combineren in trigger

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?




  1. controleer of er een waarde bestaat in json encode array in mysql

  2. MySQL-query - vind nieuwe gebruikers per dag

  3. SQL Developer geeft geen XML weer

  4. Aanroepen van de privéfunctie binnen de hoofdtekst van het pakket