Probleme beim Formatieren, wenn statementen in SQL

Ich habe die folgende sql-statement erstellt, alles in $ () ist eine Variable (kommt aus dem module, das wir auf unserer Seite verwenden, also $ (varname) ist das richtige Format in diesem Fall nicht @varname.

Es sagt mir, es gibt einen Fehler in der Nähe von DANN … wie soll ich das richtig formatieren?

IF ($(Shiptobilling) = 'yes') THEN BEGIN CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(BillStreet1), $(BillCity), $(BillState), $(BillCountry), $(BillZip), getdate(), $(ExpiryDate) END ELSE BEGIN CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(ShipStreet1), $(ShipCity), $(ShipState), $(ShipCountry), $(ShipZip), getdate(), $(ExpiryDate) END 

Vielen Dank,
Matt

Befreien Sie sich von der THEN , und fügen Sie EXEC bevor Ihre gespeicherte Prozedur anruft.

 IF ($(Shiptobilling) = 'yes') BEGIN EXEC CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(BillStreet1), $(BillCity), $(BillState), $(BillCountry), $(BillZip), getdate(), $(ExpiryDate) END ELSE BEGIN EXEC CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(ShipStreet1), $(ShipCity), $(ShipState), $(ShipCountry), $(ShipZip), getdate(), $(ExpiryDate) END 

Auch sollten Sie eine bessere Einrückung verwenden. Wenn das mein Code wäre, würde ich es so formatieren:

 IF ($(Shiptobilling) = 'yes') BEGIN EXEC CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(BillStreet1), $(BillCity), $(BillState), $(BillCountry), $(BillZip), getdate(), $(ExpiryDate) END ELSE BEGIN EXEC CardOrder_Add $(UserID), $(Firstname), $(Lastname), $(ShipStreet1), $(ShipCity), $(ShipState), $(ShipCountry), $(ShipZip), getdate(), $(ExpiryDate) END 

Es ist ziemlich lang, aber dann wieder ist es einfach zu pflegen, weil man nicht nach links und rechts scrollen muss, um den gesamten Prozeduraufruf zu sehen.

Es gibt kein Dann in t-sql wenn Statements

Sowie die extra "Dann", wie andere erwähnt haben, müssen Sie hinzufügen, bevor die gespeicherte Prozedur Anrufe innerhalb des Körpers der if-statementen.