適用於:SQL Server
在某些情況下,您可能希望建立一個查詢,這個查詢可以重複使用,但每次都能使用不同的值。 例如,您可能會經常執行查詢,以查找某位作者撰寫的所有 title_ids。 您可以針對每個要求執行相同的查詢,不同之處在於每次作者的標識碼或名稱都會不同。
若要建立可在不同時間具有不同值的查詢,您可以在查詢中使用參數。 參數是查詢執行時提供之值的佔位元。 具有參數的 SQL 語句可能如下所示,其中 “?” 代表作者標識符的參數:
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
使用參數的時機
您可以使用參數作為文本或數字的具體值的佔位符。 最常見的是,參數在個別數據列或群組的搜尋條件中做為佔位元(也就是 WHERE SQL 語句的 或 HAVING 子句中)。
您可以在表示式中使用參數做為佔位元。 例如,您可能想要在每次執行查詢時提供不同的折扣值來計算折扣價格。 若要這樣做,您可以指定下列表示式:
(price * ?)
指定未命名和具名參數
您可以指定兩種類型的參數:未命名和具名。 未命名的參數是一個問號(?),您可以將它放在查詢中您想要要求輸入或取代常值的任何位置。 例如,如果您使用未命名的參數來搜尋 titleauthor 數據表中的作者標識符,SQL 窗格中產生的語句看起來可能如下所示:
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
當您在 [查詢和檢視設計工具] 中執行查詢時,[查詢參數] 對話框會顯示為 “?” 做為參數的名稱。
或者,您可以將名稱指派給參數。 如果您在查詢中有多個參數,具名參數特別有用。 例如,如果您使用具名參數來搜尋 authors 數據表中的作者名字和姓氏,SQL 窗格中產生的語句看起來可能如下所示:
SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
au_lname = %last name%
提示
您必須先定義前置詞和後綴字元,才能建立具名參數查詢。
當您在查詢和檢視表設計工具中執行查詢時,[查詢參數] 對話框隨即出現,其中包含具名參數的清單。