View Full Version : نتیجه یک تریگر کجا میره ؟
nilmil_nil
چهارشنبه 02 شهریور 1390, 23:58 عصر
با سلام
وقتی یک تریگر در اثر یک Del Or INS or UPD اجرا میشه.اگه بخوایم نتیجه اون رو تو یه datatable ببینم باید چطور اونو بدست بیارم !؟
Galawij
پنج شنبه 03 شهریور 1390, 12:20 عصر
سلام،
من خودم این روش را در داخل تریگر انجام ندادم، ولی شما امتحان کنید ببینید در داخل تریگر جواب می دهد یا نه؟ فقط یک نکته ای را بگم، این دستور از ورژن 2005 به بالا جواب می دهد.
ابتدا یک جدول درست می کنید، بعد نتیجه دستورات DML داخل تریگر را داخل این جدول می ریزید از طریق دستور * .OUTPUT DELETE.
یک مثال براتون می ذارم:
DECLARE @MyOrderSumTVar TABLE(
OrderID int,
CustomerID int,
OrderYear int);
DELETE FROM OrderSum
OUTPUT DELETED.* INTO @MyOrderSumTVar
SELECT * FROM @MyOrderSumTVar
nilmil_nil
پنج شنبه 03 شهریور 1390, 13:55 عصر
مرسی از جوابتون
جواب نداد .یه خورده کدتون نا مفهومه برام.میشه یکم در مورد ش توضیح بدین.من کد رو کپی کردن تو تریگر.ولی جواب نداد. order sum چه جدولیه.من اونو به اسم جدول خودم تغییر دادم ولی جواب نداد
مرسی
Galawij
شنبه 05 شهریور 1390, 12:44 عصر
سلام دوست عزیزم،
اگر یک سرچ کوچک انجام می دادید، متوجه می شدید.
جدول OrderSum یک جدول نمونه هست، که من مثال را روی آن جدول برای شما پیاده سازی کردم. در این مثال تمام ردیف های جدول OrderSum را حذف کردم، بخش OUTPUT، داده های حذف شده را برمی گرداند و داخل یک جدول می ریزد.
این دستور برای تمام دستورات (DML(DELETE,INSERT,UPDATE کار می کند.
این لینک (http://technet.microsoft.com/en-us/library/ms177564.aspx) و این لینک (http://blogs.msdn.com/b/sqltips/archive/2005/06/13/output-clause.aspx) را مطالعه بفرمائید، متوجه می شید.
امیدوارم بتونید ازش استفاده مطلوب را ببرید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.