【发布时间】:2014-04-29 21:48:25
【问题描述】:
我创建了一个事务过程,除了由于某种原因回滚一直显示其错误消息并且它不允许插入正常运行之外,它都可以正常工作。所以现在我不确定当我注释掉该部分时我需要做些什么来解决这个问题它一切正常它只是 IF 回滚语句
Create Proc DP_Transaction
@PartNumber Varchar (10)= NULL,
@PartDescription Varchar(50) = Null,
@ReorderLevel Decimal(5,0) =Null,
@StockLevel decimal(5,0)= null,
@StockOnOrder decimal(5,0) =null
as
If @PartNumber IS NULL
begin
Print 'You must enter something for Partnumber'
Print 'Order Not Processed'
print ' '
return
end
If @PartDescription IS NULL
begin
Print 'You must enter something PartDescription'
Print 'Order Not Processed'
print ' '
return
end
If @ReorderLevel IS NULL
begin
Print 'A number must entered for ReorderLevel'
Print 'Order Not Processed'
print ' '
return
end
If @StockLevel is Null
Begin
print 'A number must be entered for StockLevel'
print 'Order Not Processed'
Print ''
Return
End
If @StockOnOrder is null
Begin
Print 'A number must be entered for StockOnOrder'
Print 'Order Not Processed'
Print ''
Return
End
Begin Transaction
Insert into InventoryPart
(Partnumber,PartDescription,ReorderLevel,StockLevel,StockOnOrder)
Values(@PartNumber,@PartDescription,@ReorderLevel, @StockLevel, @StockOnOrder)
//This is where I am having the errors
If exists (Select PartNumber from InventoryPart where PartNumber = @PartNumber)
Begin
Print ' The Partnumber ' + @PartNumber+' is already in the InventoryPart table'
print ' you must select a different PartNumber'
Print ' Item not inserted'
print ''
Rollback
end
else
begin
Commit Transaction
print 'Part has been added'
print ''
print ''
End
【问题讨论】:
标签: sql sql-server transactions procedure rollback