2013-06-24 128 views
-3

我們已經決定將sql參數化查詢文本存儲在xml文件中。對於這個項目,我們使用帶有C#代碼的SQLite(http://system.data.sqlite.org/),但錯過了一些有關參數化查詢靈活性的基本信息參考,尤其是首先在標準SQL中以及此數據庫引擎。這是無可爭議的變量是可參數化的(對於A = ...的值),表名不是,但我們不完全確定列名(從mytable中選擇xxx)。 謝謝你幫助我找到。尋找sql參數化查詢參考

回答

0

在幾乎所有的SQL引擎中,SQLite也不例外,表名和列名不能被參數化。

這是因爲大部分時間參數化查詢都是預編譯的,爲了預編譯正常工作,SQL引擎需要創建查詢計劃 - 哪些表要使用哪些列進行連接,以及要使用哪些索引。如果在這個階段表和列的名字是未知的,預編譯將不可能。這就是爲什麼只允許約束值(如WHERE)參數化(使用?,$1:name語法,具體取決於SQL引擎支持)。