我已經創建了以下sql語句,$()中的每一件事都是一個變量(來自我們在我們網站上使用的模塊,所以$(varname)是這個格式的正確格式)情況下,不@varname。如果語句在SQL中遇到格式問題
它不斷告訴我有近那麼錯誤...我怎麼格式化這個正常嗎?
謝謝
馬特
我已經創建了以下sql語句,$()中的每一件事都是一個變量(來自我們在我們網站上使用的模塊,所以$(varname)是這個格式的正確格式)情況下,不@varname。如果語句在SQL中遇到格式問題
它不斷告訴我有近那麼錯誤...我怎麼格式化這個正常嗎?
謝謝
馬特
擺脫THEN
,並添加在存儲過程調用之前調用。
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
此外,你應該使用一些更好的壓痕。如果這是我的代碼,我會格式化更是這樣的:
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
這是相當長的,但話又說回來很容易維護,因爲你不必左右滾動看到整個過程調用做。
沒有那麼在T-SQL如果statments
還有額外的「然後」正如其他人所說,你將需要添加Exec中的if語句的身體內的存儲過程調用之前。
+1打我吧 – 2009-11-20 20:14:00
對不起,縮進是由於從我使用的沙箱中複製粘貼格式不佳造成的......我擺脫了那個,現在我又收到另一個錯誤:CardOrder_Add附近的語法錯誤 – Matt 2009-11-20 20:14:03
@Matt:'EXEC'聲明肯定會對此有所幫助。至少,我假設'CardOrder_Add'是一個存儲過程。 – Welbog 2009-11-20 20:16:42