系統(tǒng)存儲(chǔ)過程,sp_executesql
系統(tǒng)存儲(chǔ)過程,sp_executesql
語言在這里!
sp_executesql
執(zhí)行可以多次重用或動(dòng)態(tài)生成的 Transact-SQL 語句或。Transact-SQL 語句或可以包含嵌入?yún)?shù)。
語法
sp_executesql [@stmt =] stmt
[
{, [@params =] N’@parameter_name data_type [,…n]’ }
{, [@param1 =] ‘value1’ [,…n] }
]
參數(shù)
[@stmt =] stmt
包含 Transact-SQL 語句或的 Unicode 字符串,stmt 必須是可以隱式轉(zhuǎn)換為 ntext 的 Unicode 常量或變量。不允許使用更復(fù)雜的 Unicode 表達(dá)式(例如使用 + 運(yùn)算符串聯(lián)兩個(gè)字符串)。不允許使用字符常量。如果指定常量,則必須使用 N 作為前綴。例如,Unicode 常量 N’sp_who’ 是有效的,但是字符常量 ‘sp_who’ 則無效。字符串的大小僅受可用數(shù)據(jù)庫服務(wù)器內(nèi)存限制。
stmt 可以包含與變量名形式相同的參數(shù),例如:
N’SELECT * FROM Employees WHERE EmployeeID = @IDParameter’
stmt 中包含的每個(gè)參數(shù)在 @params 參數(shù)定義列表和參數(shù)值列表中均必須有對(duì)應(yīng)項(xiàng)。
[@params =] N’@parameter_name data_type [,…n]’
字符串,其中包含已嵌入到 stmt 中的所有參數(shù)的定義。該字符串必須是可以隱式轉(zhuǎn)換為 ntext 的 Unicode 常量或變量。每個(gè)參數(shù)定義均由參數(shù)名和數(shù)據(jù)類型組成。n 是表明附加參數(shù)定義的占位符。stmt 中指定的每個(gè)參數(shù)都必須在 @params 中定義。如果 stmt 中的 Transact-SQL 語句或不包含參數(shù),則不需要 @params。該參數(shù)的默認(rèn)值為 NULL。
[@param1 =] ‘value1’
參數(shù)字符串中定義的第一個(gè)參數(shù)的值。該值可以是常量或變量。必須為 stmt 中包含的每個(gè)參數(shù)提供參數(shù)值。如果 stmt 中包含的 Transact-SQL 語句或沒有參數(shù),則不需要值。
n
附加參數(shù)的值的占位符。這些值只能是常量或變量,而不能是更復(fù)雜的表達(dá)式,例如函數(shù)或使用運(yùn)算符生成的表達(dá)式。
返回代碼值
0(成功)或 1(失敗)