PDA

View Full Version : حذف فاکتور



870056950
جمعه 08 خرداد 1388, 13:31 عصر
وقتی از جدول فاکتورهایم یکی را حذف می کنم می خواهم از کد فاکتورهای بعد از آن یکی کم شود. برای این کار از این دستور استفاده می کنم اما خطا دارد. توجه کنید که SaleCode در جودل من PrimaryKey نیست. و از آنجا که فاکتورهای دیگری هم با همین تاریخ وجود دارند از تاریخ هم در شرطم استفاده می کنم. مثلاً این حالت که خطا می دهد را باید چی کار کرد که خطا نداشته باشد؟
UPDATE SaleBank SET SaleCode = 5 WHERE (SaleCode = 6) AND(SaleDate = 5/28/2009 12:00:00 AM)
و یک سؤال دیگر آیا در sql نوعی وجود دارد که فقط تاریخ را ذخیره کند؟ یعنی زمان را ذخیره نکند. تو C# همش نوع DateTime که هر دو رو فقط با هم دارد.
خطا:Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '12'.

Mahdi1001
جمعه 08 خرداد 1388, 13:38 عصر
یعنی ممکن تو جدولت دو فاکتور با کد 6 باشه ؟ فیلد دیگه نداره به جای تاریخ از اون استفاده کنی من که فکر میکنم به خاطر تاریخت که خطا میده

NewFoxStudent
جمعه 08 خرداد 1388, 13:42 عصر
اینطوری اصلاحش کن درست میشه

Update SaleBank Set SaleCode = 5 Where SaleCode = 6 And SaleDate = '5/28/2009 12:00:00 AM'
باید کل مقدار تاریخ رو داخل کوتیشن بزاری

Reza_Yarahmadi
جمعه 08 خرداد 1388, 15:04 عصر
دلیل خطا رو دوستمون NewFoxStudent (http://barnamenevis.org/forum/member.php?u=60929) توضیح دادن. ولی برای کم کردن شماره فاکتورها میتونی یه Trigger بنویسی که بعد از حذف یک فاکتور ، تمام شماره فاکتورهای بعد از فاکتور حذف شده رو یک واحد کم کنه.

870056950
شنبه 09 خرداد 1388, 16:00 عصر
منظورتان از Tiger چیه؟ ممکنه بیشتر توضیح بدین؟

NewFoxStudent
شنبه 09 خرداد 1388, 16:21 عصر
triger یه مبحث خفن توی بانک اطلاعاتی که باهاش میتونی یه سری عملیات انجام بدی
یه مثال
فرض کن یه جدول پرسنل داری و چند تا جدول مختلف دارن از آی دی پرسنل استفاده میکنن
حالا بنا به دلایلی میخوای آی دی یه پرسنل رو عوض کنی.باید توی تمام جداولی که از این فیل استفاده میکنن آی دی رو تغییر بدی
حالا با استفاده از تریگر میتونی به بانکت بگی که وقتی آی دی یه پرسنل عوض شد چه اتفاقی بیفته
این اتفاق در هر بار عوض شدن یک رکورد از فیلد مورد نظر رخ خواهد داد
از تریگر در عملیات Insert , Update , Delete میتونی استفاده کنی

Happy_davood
شنبه 09 خرداد 1388, 17:12 عصر
به نظرم تریگر یه کم کار دوستمون رو سخت تر می کنه . همین کافیه دیگه :


Update SaleBank Set SaleCode = SaleCode - 1 Where SaleCode > 6

Reza_Yarahmadi
شنبه 09 خرداد 1388, 21:50 عصر
یه مقاله خلاصه در مورد تریگر میذارم امیدوارم بتونه کمکت کنم