2012-10-22 36 views
1

有第三方軟件將查詢傳遞給SQL Server,但是,當參數不存在時,我遇到了問題。它解決了沒有任何引號的空字符串,因此給我一個無效的SELECT語句。 例如如何檢查不存在的參數

-- parameter exists 
Select ISNULL('param','') as param1 

-- parameter doesn't exist 
Select ISNULL(,'') as param1 

我事先知道預期的參數是否應該是字符串或數字。當參數是數字時,我打算把它用引號引起來,並檢查它是否爲零長度的字符串。但是你如何爲字符串做同樣的事情?

+1

您可以檢查'@foo是NULL'檢查一個參數爲NULL。如果一個參數_不存在_那麼你會得到一個錯誤。 – HABO

+2

您的問題很不明確:您說第三方工具會生成無效的SQL,那麼爲什麼不解決該問題?如果該工具的行爲與您描述的方式一致,那麼您應該擺脫它並使用其他的東西。目前還不清楚你的檢查零長度字符串的方法實際上意味着什麼,或者你想如何實現它。你還沒有提到你的SQL Server版本,你的編程語言和你的環境的其他細節。 – Pondlife

回答

0

感謝您的幫助。第三方軟件實際上在將參數傳遞給SQL Server(2008)之前解析了這些參數,而當不使用參數時,它只是它的怪癖而已。什麼工作對我來說是這樣的:

選擇「PARAM」 +「」作爲參數1