在執行階段建立陳述式
大部分需要在執行階段動態建立 SQL 陳述式的 MicrosoftSQL Server 應用程式,都是先建立陳述式之後,再呼叫資料庫 API 函數或方法來執行陳述式。例如,使用 ODBC 的 C 語言會將一或多個 SQL 陳述式建立在一個字元陣列中,再將陣列傳送至 ODBC SQLPrepare 或 SQLExecDirect 函數進一步處理。
Transact-SQL 支援下列方法,可透過 Transact-SQL 指令碼、預存程序和觸發程序在執行階段建立 SQL 陳述式:
使用 sp_executesql 系統預存程序可執行 Unicode 字串。sp_executesql 支援的參數替代與 RAISERROR 陳述式類似。
使用 EXECUTE 陳述式可執行字元字串。EXECUTE 陳述式不支援執行字串中的參數替代。
安全性注意事項 使用 EXECUTE 陳述式執行字串,會加速 SQL 資料隱碼攻擊。我們建議您改用含有參數的 sp_executesql。