PDA

View Full Version : مبتدی: trigger



hamidreza_h
چهارشنبه 03 خرداد 1391, 15:30 عصر
سلام دوستان
یه تریگر ساده در sql نوشتم که اگه یه فیلدی مقدار نداشت براش مقدار 'نامشخص ' ثبت بشه این دستور را execute میکنم همه چی ok میشه محل ذخیره رو هم دستکاری نمی کنم اما در قسمت programability و در قست تریگرها ثبت نمی شود و در ستور سی شارپ در پروژه مورد نظر نیز عمل نمی کنه
با تشکر از لطف دوستان

فرید نجفلو
چهارشنبه 03 خرداد 1391, 15:58 عصر
سلام
دوست عزیز اولا اگه تریگر رو برای جدول نوشته باشید باید اونو در زیر گره جدولتون و قسمت Triggers جستجو کنید
و کد داخل تریگر فقط با اجرای مجزا نمی تونه تست بشه برای تست شما باید یک دستور update یا Insert (در داخل خود SQL) اجرا کنید و ببینید تریگر وارد عمل میشه یا نه
اگه کد تریگر بود می تونستیم بهتر بگیم

hamidreza_h
چهارشنبه 03 خرداد 1391, 16:11 عصر
create trigger ss
after insert
on clothes
AS
begin
declare @size nvarchar
if @size=''
set @size=' '
end
مشکل این کد چیه چون به error میده
در داخل سی شارپ یه فرم مربوط به اضافه کردن کالای جدید دارم که داخلش insert استفاده شده و این تریگر رو برای اون می خوام
اول که نوشتم همین کد رو قبول کرد اما الان خطا می ده
مرسی

hamidreza_h
چهارشنبه 03 خرداد 1391, 16:13 عصر
البته به این صورت after insert نوشته شده نه به هم چسبیده مرسی

hamidreza_h
چهارشنبه 03 خرداد 1391, 16:23 عصر
متوجه شدم اول باید اسم جدول مورد نظر را بنویسم و بعد دستور AFTER INSERT

TRIGGER من ثبت شده اما در فرم مورد نظر من در دیتا گرید ویو که کالا جدید را ثبت می کنم و برا ی سایز چیزی تایپ نمی کنم 'هیچ مقدار' نمی زاره و خودش خالی می زاره مشکل چیه

فرید نجفلو
چهارشنبه 03 خرداد 1391, 17:55 عصر
عجب تریگری نوشتید!!!

این رو تست کنید (البته بعد از تغییر به نام های اصلی)

USE [DataBase Name]
GO
CREATE TRIGGER [dbo].[TriggerName]
ON [dbo].[YourTable]
AFTER INSERT
AS
BEGIN
UPDATE [dbo].[YourTable] set [dbo].[YourTable].[Size]=N'هیچ مقدار'
WHERE [dbo].[YourTable].[ID] IN (SELECT [ID] FROM INSERTED) AND [dbo].[YourTable].[Size]=''

END
GO