Here it is in all of its unoptimized glory. Probably something simple that I'm overlooking. CREATE PROCEDURE spUpdateOproStatus@oproID int,@customerSend bit,@englandSent bit,@received bitASDECLARE @orderNumber intBEGIN TRANSACTION if @englandSent=1 begin UPDATE tblOpro SET englandShip=cast(getDate() as smalldatetime) WHERE oproID=@oproID end if @customerSend=1 begin Select @orderNumber=orderID from tblOrders where projectNumber=cast(@oproID as nvarchar(50)) if @orderNumber IS NOT NULL BEGIN INSERT INTO tblOrders_Products (orderID, itemID, opQty) VALUES (@orderNumber, 'OP-6000', '1') UPDATE tblOpro SET customerShip=cast(getDate() as smalldatetime) WHERE oproID=@oproID END end if @received=1 begin Select @orderNumber=orderID from tblOpro where oproID=@oproID UPDATE tblOpro SET received='1' where oproID=@oproID INSERT INTO tblOrders_Products (orderID, itemID, opQty) Values (@orderNumber, 'OP-5000', '1') endCOMMIT TRANSACTION