ali_kolahdoozan
جمعه 07 تیر 1387, 05:40 صبح
سلام اين چند تا sp رو ببينيد آيا وجود transaction تاثير مثبت يا منفي دارد؟ برش دارم يا توي همين ساده ها هم بزارم باشه ؟ چون اينجا وجودشون دليل خاصي نداره . نظرات خودتون رو با منبع و دقيق اگر لطف كنيد ممنون ميشم
-------=====------- Insert Proc
Create Procedure IPersons
@PersonName nvarchar(25),
@Family nvarchar(50),
@Tel nvarchar(20),
@Cell varchar(50),
@Address nvarchar(200),
@Sex bit,
@BShdate char(10),
@Bdate datetime,
@Mail varchar(50),
@Job nvarchar(50),
@id int output
As
Begin Transaction
Insert Into Persons(
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
)
Values(
@PersonName,
@Family,
@Tel,
@Cell,
@Address,
@Sex,
@BShdate,
@Bdate,
@Mail,
@Job
)
IF @@Error = 0
Begin
Commit Transaction
Set @id=@@identity
End
Else
Rollback Transaction
-------=====------- Delete Proc
Create Procedure DPersons
@id int
As
Begin Transaction
Delete From Persons
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- Update Proc
Create Procedure UPersons
@id int,
@PersonName nvarchar(25),
@Family nvarchar(50),
@Tel nvarchar(20),
@Cell varchar(50),
@Address nvarchar(200),
@Sex bit,
@BShdate char(10),
@Bdate datetime,
@Mail varchar(50),
@Job nvarchar(50)
As
Update Persons
Set
PersonName=@PersonName,
Family=@Family,
Tel=@Tel,
Cell=@Cell,
Address=@Address,
Sex=@Sex,
BShdate=@BShdate,
Bdate=@Bdate,
Mail=@Mail,
Job=@Job
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- Select Proc
Create Procedure SPersons
@id int
As
Select
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
From Persons
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- List Proc
Create Procedure LPersons
@id int
As
Select
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
From Persons
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
این transaction ها ممکنه سبب lock بیهوده بشه . نظر شما چی است؟
-------=====------- Insert Proc
Create Procedure IPersons
@PersonName nvarchar(25),
@Family nvarchar(50),
@Tel nvarchar(20),
@Cell varchar(50),
@Address nvarchar(200),
@Sex bit,
@BShdate char(10),
@Bdate datetime,
@Mail varchar(50),
@Job nvarchar(50),
@id int output
As
Begin Transaction
Insert Into Persons(
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
)
Values(
@PersonName,
@Family,
@Tel,
@Cell,
@Address,
@Sex,
@BShdate,
@Bdate,
@Mail,
@Job
)
IF @@Error = 0
Begin
Commit Transaction
Set @id=@@identity
End
Else
Rollback Transaction
-------=====------- Delete Proc
Create Procedure DPersons
@id int
As
Begin Transaction
Delete From Persons
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- Update Proc
Create Procedure UPersons
@id int,
@PersonName nvarchar(25),
@Family nvarchar(50),
@Tel nvarchar(20),
@Cell varchar(50),
@Address nvarchar(200),
@Sex bit,
@BShdate char(10),
@Bdate datetime,
@Mail varchar(50),
@Job nvarchar(50)
As
Update Persons
Set
PersonName=@PersonName,
Family=@Family,
Tel=@Tel,
Cell=@Cell,
Address=@Address,
Sex=@Sex,
BShdate=@BShdate,
Bdate=@Bdate,
Mail=@Mail,
Job=@Job
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- Select Proc
Create Procedure SPersons
@id int
As
Select
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
From Persons
Where
id=@id
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
-------=====------- List Proc
Create Procedure LPersons
@id int
As
Select
PersonName,
Family,
Tel,
Cell,
Address,
Sex,
BShdate,
Bdate,
Mail,
Job
From Persons
IF @@Error = 0
Begin
Commit Transaction
End
Else
Rollback Transaction
این transaction ها ممکنه سبب lock بیهوده بشه . نظر شما چی است؟