ich einen Auslöser für eine bestimmte Datenmenge zu schaffen versuchen, Dies ist der Code, den ichWarum kann mein Auslöser die Spalte nicht identifizieren?
Create trigger tr_minimum_salary
On tble_SalesReps_TR
After Update as
If update(salary) and datediff(YY,DateOfHire,getdate())>=15
Begin
Raiserror('Employees with more than 15 years of experience cannot recieve less than 100,000 $',0,1)
Rollback
Return
END
Es ist mir einen Fehler bin mit ‚Ungültiger Spaltenname DateofHire‘ sagt
Während die folgenden Code funktioniert
Select * from tble_SalesReps_TR
Where datediff(YY,DateOfHire,getdate())>=15
Was mache ich falsch mit dem Triggercode?
EDIT: Hier ist ein weiterer Trigger-Code, die Arbeit getan hat, ohne die
"FROM" Anweisung verwendenCreate trigger tr_nochange_december
On tbls_products_tr
After Update as
If update(UnitsOnOrder) and datepart(m,(getdate()))<>12
Begin
Raiserror('These products can only be purchased in December',0,1)
Rollback
Return
END
Auch hier vorsichtig sein. Die UPDATE-Funktion wird NICHT ausgewertet, wenn die Werte identisch sind. Es wird nur überprüft, ob diese Spalte in der ursprünglichen Update-Anweisung enthalten ist. Dies ist ein sehr häufiges Missverständnis. UPDATE (Gehalt) gibt True zurück, auch wenn der Wert unverändert ist. –