PDA

View Full Version : آیا این کد برای insertوupdate درست هست



googoli
جمعه 23 دی 1390, 23:43 عصر
با سلام
من این کد رو نوشتم می خواستم ببینم ایا نحوه کار من درست هست یا نه اگر درست نیست لطفا من را راهنمایی کنید
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
if not exists(select * from Total_account where Total_ID=@id or Total_ID=@code )
begin
begin tran
begin try
insert into Total_account(Total_ID,Name,Groupname,Status_accou nt) values (@id,@name,@group,@status)
COMMIT TRAN
end try
begin catch
ROLLBACK TRAN
end catch
end
else
begin
begin tran
begin try
update Total_account set Total_ID=@id,Name=@name,Groupname=@group,Status_ac count=@status where Total_ID=@code
COMMIT TRAN
end try
begin catch
ROLLBACK TRAN
end catch
end

-----------------------
END

baktash.n81@gmail.com
یک شنبه 25 دی 1390, 08:24 صبح
سلام

روش کار یه مقداری صلیقه ایی ... اما چهار چوبش درسته ... مشکلی نداره

behrouzlo
یک شنبه 25 دی 1390, 20:33 عصر
اگر از نسخه 2005 یا بالاتر استفاده می کنید از دستور MERGE استفاده کنید:
http://technet.microsoft.com/en-us/library/bb510625.aspx

pashna
سه شنبه 27 دی 1390, 08:34 صبح
سلام، به نظر من اینم روس خوبی، اگر دوست داشتید امتحانش کنید
UPDATE Total_account
SET Total_ID = @id ,
Name = @name ,
Groupname = @group ,
Status_account = @status
WHERE Total_ID = @code
IF @@ROWCOUNT = 0
BEGIN
INSERT INTO Total_account
( Total_ID ,
Name ,
Groupname ,
Status_account
)
VALUES ( @id ,
@name ,
@group ,
@status
)
END