之前我创建了这个存储过程:
Create Procedure CreateEmployee
(
@Role_ID Int,
@FirstName Varchar(50),
@LastName Varchar(50),
@DateOfBirth Varchar(50),
@Active Bit
)
As
Begin
If Not Exists (Select FirstName, LastName, DateOfBirth
From Employee Where FirstName = @FirstName
AND LastName = @LastName
AND DateOfBirth = @DateOfBirth)
Begin
Insert Into Employee (Role_ID, FirstName, LastName, DateOfBirth, Active)
Values (@Role_ID, @FirstName, @LastName, @DateOfBirth, @Active)
End
Else
Begin
Select 'User already exists!'
End
End
此过程将在执行插入之前检查员工表中是否已存在员工。
它似乎足够防弹,因为它是在发生任何类型的表更改之前完成的单一条件检查。然而,在对交易进行了一些阅读之后,我想知道我是否应该让我的所有程序交易以提供额外的保护。
tl博士;有没有不应该使用交易的时候?