fejl i storedprocedure (sub query), som alligevel virker fint :S
hejsa,jeg får følgende fejl når jeg kører min stored procedure:
System.Data.SqlClient.SqlException: Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Selve koden bag proceduren ser sådan ud:
ALTER PROCEDURE dbo.SinglePurchaseDealStatus_Update
(
@SerialNumber nvarchar(18),
@Status int,
@ApproveDate1 datetime,
@ApproveDate2 datetime,
@ApproveDate3 datetime,
@ClosedDate datetime,
@WorkerID int,
@ManagerID int,
@ProviderID int,
@ClosedID int,
@RejectionText ntext,
@CancelStatus int,
@TerminationStatus int
)
AS
BEGIN TRAN
UPDATE
SinglePurchaseDealStatus
SET
Status = @Status,
ApproveDate1 = @ApproveDate1,
ApproveDate2 = @ApproveDate2,
ApproveDate3 = @ApproveDate3,
ClosedDate = @ClosedDate,
WorkerID = @WorkerID,
ManagerID = @ManagerID,
ProviderID = @ProviderID,
ClosedID = @ClosedID,
RejectionText = @RejectionText,
CancelStatus = @CancelStatus,
TerminationStatus = @TerminationStatus
WHERE
SerialNumber = @SerialNumber
IF @Status = 3
BEGIN
UPDATE
KOMMAProject
SET
ReservedSeats = ReservedSeats+1
WHERE
KOMMAProjectID IN (SELECT KOMMAProjectID FROM ServicePurchase WHERE SerialNumber = @SerialNumber)
END
DECLARE @TerminationCauseID int
DECLARE @EndingCauseID int
SET @TerminationCauseID = (SELECT TerminationCauseID FROM ServicePurchase WHERE SerialNumber = @SerialNumber)
SET @EndingCauseID = (SELECT EndingCauseID FROM ServicePurchase WHERE SerialNumber = @SerialNumber)
IF @Status > 3 AND @TerminationCauseID = -1 AND @EndingCauseID = -1
BEGIN
UPDATE
KOMMAProject
SET
ReservedSeats = ReservedSeats - 1
WHERE
KOMMAProjectID IN (SELECT KOMMAProjectID FROM ServicePurchase WHERE SerialNumber = @SerialNumber)
END
IF @@ERROR <> 0
ROLLBACK TRAN
ELSE
COMMIT TRAN
GO
Hvad er det der driller? Som sagt så bliver status opdateret og det hele kører fint nok, undtaget den nævnte fejl meddelse.
På forhånd tak