共用方式為


參數查詢 (Visual Database Tools)

適用於: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%

提示

您必須先定義前置詞和後綴字元,才能建立具名參數查詢。

當您在查詢和檢視表設計工具中執行查詢時,[查詢參數] 對話框隨即出現,其中包含具名參數的清單。