Ich habe gerade ein Stattdessen Nach-Trigger, dessen Syntax ist unten angegeben:Was ist die Syntax Bedeutung von RAISERROR()
Create trigger tgrInsteadTrigger on copytableto
Instead of Insert as
Declare @store_name varchar(30);
declare @sales int;
declare @date datetime;
select @store_name = i.store_name from inserted i
select @sales = i.sales from inserted i
select @date = i.Date from inserted i
begin
if (@sales > 1000)
begin
RAISERROR('Cannot Insert where salary > 1000',16,1); ROLLBACK;
end
else
begin
insert into copytablefrom(store_name, sales, date) values (@store_name, @sales, @date);
Print 'Instead After Trigger Executed';
end
End
I RAISERROR('Cannot Insert where salary > 1000',16,1)
In der obigen Syntax verwendet haben, aber wenn ich es schreiben RAISERROR('Cannot Insert where salary > 1000')
gibt den Fehler "Falsche Syntax in der Nähe von ')" in derselben Zeile an.
Kann jemand bitte die Verwendung von (16,1) hier erklären.
Die Syntax von 'RaIsError' wird [hier] erklärt (http://msdn.microsoft.com/en-us/library/ms178592 (v = sql.100) .aspx). – HABO
Dieser Trigger ist defekt - er geht davon aus, dass es in 'inserted' eine * einzelne * Zeile gibt, während in 'insert' tatsächlich 0, 1 oder * viele * Zeilen vorhanden sein können. –