View Full Version : نوشتن چندین شرط پشت سرهم با دستور if در sql server 2005
maaaaaa
چهارشنبه 22 اردیبهشت 1389, 13:36 عصر
با سلام به دوستان
من می خوام چندین شرط پشت سرهم را در sql با دستور if بنویسم و نمی خوام هم از case استفاده کنم ،
لطفا برام توضیح بدید که به چه شکل می توان چندین شرط را با دستور if بنویسم؟مثلا :
if (شرط اول برقرار باشه)
-----
----(یک سری دستورات را اجرا کنه)
-----
----
if(شرط دوم)
----
----
----(یک سری دستورات را اجرا کنه)
----
-----
if(شرط سوم)
----
----
----(یک سری دستورات را اجرا کنه)
----
-----
محمد سلیم آبادی
چهارشنبه 22 اردیبهشت 1389, 13:40 عصر
IF condition_1
BEGIN .... END
ELSE IF condition_2
BEGIN ... END
ELSE IF condition_3
BEGIN ... END
maaaaaa
پنج شنبه 23 اردیبهشت 1389, 07:53 صبح
با سلام،ببینید اشکال تریگر من چیه که وارد شرط دوم if م نمی شه؟
create trigger [t_m_t] on [dbo].[tbl_entezar]
after insert
as
declare @darkhasti int
declare @free int,@feli int
select @darkhasti= tedad_darkhasti from inserted
select @free=t.mojodi_free
from tbl_items t
inner join inserted i
on(( t.part_no=i.part_no )and(t.type_stor=i.type_stor))
where t.mojodi_free=0
select @feli=t.mojodi_feli
from tbl_items t
inner join inserted i
on(( t.part_no=i.part_no )and(t.type_stor=i.type_stor))
if((@free=0)and(@darkhasti<=@feli))
begin
update t
set t.mojodi_reserve=@darkhasti,t.mojodi_free=@feli-@darkhasti
from tbl_items t
inner join inserted i
on(t.part_no=i.part_no)and(t.type_stor=i.type_stor )
end
else if((@free<>0)and(@darkhasti<=@free))
begin
update t
set t.mojodi_reserve=@darkhasti,@free=t.mojodi_free-@darkhasti
from tbl_items t
inner join inserted i
on(t.part_no=i.part_no)and(t.type_stor=i.type_stor )
end
محمد سلیم آبادی
پنج شنبه 23 اردیبهشت 1389, 08:24 صبح
در شرط دوم عبارت بولیین به جای:
else if((@free<>0)and(@darkhasti<=@free))
نباید این باشه؟
else if((@free<>0)and(@darkhasti<=@feli))
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.