PDA

View Full Version : استفاده از OUTPUT و وجود trigger



حسین محمدی
شنبه 12 اردیبهشت 1388, 12:20 عصر
من روی جدول خود یک trigger برای insert دارم که از نوع after می باشد و کارش این است که اگر کاربر بخواهد رکوردی را insert کند که تمام مقادیر آن با هم NULL باشد به جز primary key این insert انجام نخواهد شد.

در ضمن دستور insert من همواره با output می باشد و error می دهد.

البته من output را به این دلیل استفاده می کنم که می خواهم مقدار primary key را که تولید می شود را بخوانم. آیا راهی وجود دارد که من یا دستور را یک جوری اجرا کنم یا اول insert کنم و بعد مقدار pk را بخوانم؟

حامد مصافی
شنبه 12 اردیبهشت 1388, 15:43 عصر
- گمان نمی کنم متن خطا ربطی به داشتن پارامتر output باشد.
- متن خطا را بنویسید.
- اگر کلید شما identity است برای دریافت آن از متغیر عمومی @@identity استفاده کنید.

حسین محمدی
یک شنبه 13 اردیبهشت 1388, 18:14 عصر
دستور من این چنین است:


INSERTINTO dbo.Accounts (FirstName, LastName, [Description])
OUTPUT inserted.AccountID, inserted.[FirstName], inserted.LastName, inserted.[Description]
VALUES(N'حسین', N'محمدی',NULL)

و خروجی چنین:


Msg 334, Level 16, State 1, Line 1
The target table 'dbo.Accounts' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause.

ASKaffash
دوشنبه 14 اردیبهشت 1388, 16:28 عصر
سلام
باید از trigger از نوع Instead off استفاده شود و با یک if چک کنید که insert شود یا خیر

Developer Programmer
دوشنبه 14 اردیبهشت 1388, 22:32 عصر
عذر میخوام ممکنه بگین کار Output در اینجا چیه؟