View Full Version : سوال: موجود بودن مقدار موجود از قبل در فیلد
hasandrw
سه شنبه 14 تیر 1390, 12:01 عصر
سلام دوستان
بافرض اینکه من سه فیلد بانام های (نام-نام خانوادگی-تلفن) دارم. وقتی می خوام رکورد جدیدی و ذخیره کنم اول کل رکوردهام رو چک کنه اگه رکوردی با این نام که می خوام ذخیره کنم قبلا ذخیره شده باشه پیغام بده که این رکورد قبلا ذخیره شده.
با چه تابعی می تونم این کار رو انجام بدم.
البته می تک تک فیلد ها رو جداگانه چک کنه.
اگه راهنماییم کنید ممنون میشم.
یا حق
یوسف زالی
سه شنبه 14 تیر 1390, 14:19 عصر
سلام.
تو یه Stored Procedure کار Insert رو انجام بدین.
تو همون هم قبل از Insert تست رو انجام بدین.
اگر وجود نداشت Insert بشه.
راههای دیگه ای هم مثل Trigger وجود دارند.
pezhvakco
سه شنبه 14 تیر 1390, 16:28 عصر
سلام :
با چه تابعی می تونم این کار رو انجام بدم.
البته می تک تک فیلد ها رو جداگانه چک کنه.
تابعی نمی خواد . یک شرط وجود ردیف با این شرایط رو می خواد .
WHERE (name LIKE 'Name') AND (famil LIKE 'Famil') AND (Tel = 1)
یعنی چی جداگانه می خوای چک بشه .
این شرط رو می تونین در Sp, Trigger و یا در برنامه بنویسین .
hasandrw
شنبه 18 تیر 1390, 11:28 صبح
من با Tigger کار نکردم میشه توضیح بیشتری بدین که کد رو باید کجا نوشت یا با این دستورsql چگونه شرط کار کنم.
hossein_h62
شنبه 18 تیر 1390, 12:07 عصر
من با Tigger کار نکردم میشه توضیح بیشتری بدین که کد رو باید کجا نوشت یا با این دستورsql چگونه شرط کار کنم.
سلام
همونطور که دوستان اشاره کردند؛ در sp که مینویسی قبل از insert چک کن :
If Not Exists( Select * From MyTable WHERE (name LIKE 'Name') AND (famil LIKE 'Famil') AND (Tel = 1) )
Begin
insert into Table (f1,f2,...)
Values (...)
End
Else
RaiseError(...)
در مورد تریگر هم در تالار SQL Server مفصل بحث شده و نمونه وجود داره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.