मैं अभी बनाया की वाक्य रचना अर्थ है एक के बजाय बाद उत्प्रेरक जिसका वाक्य रचना नीचे दिया गया हैक्या 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
ऊपर वाक्य रचना मैं RAISERROR('Cannot Insert where salary > 1000',16,1)
का इस्तेमाल किया है में लेकिन यह RAISERROR('Cannot Insert where salary > 1000')
जब मैं लिखने एक ही पंक्ति पर "गलत वाक्यविन्यास" के पास त्रुटि देता है।
क्या कोई यहां (16,1) के उपयोग की व्याख्या कर सकता है।
'रायसइरर' का वाक्यविन्यास समझाया गया है [यहां] (http://msdn.microsoft.com/en-us/library/ms178592 (v = sql.100) .aspx)। – HABO
यह ट्रिगर टूटा हुआ है - यह मानता है कि 'डालने' में एक * एकल * पंक्ति है, जबकि वास्तव में 'डाला' में 0, 1, या * कई * पंक्तियां हो सकती हैं। –