适用于:SQL Server
在某些情况下,需要创建一个查询,该查询可以多次使用,但每次使用不同的值。 例如,你可能经常运行查询来查找由某个作者所写的所有 title_ids
。 可以针对每个请求运行相同的查询,但每次作者的 ID 或名称会有所不同。
若要创建可以在不同时间具有不同值的查询,请在查询中使用参数。 参数是查询运行时提供的值的占位符。 具有参数的 SQL 语句可能如下所示,其中“?” 表示作者 ID 的参数:
SELECT title_id
FROM titleauthor
WHERE (au_id = ?)
可在何处使用参数
可以将参数用作文本值的占位符 - 对于文本或数值。 通常,参数用作单个行或组的搜索条件中的占位符(即 SQL 语句的 WHERE 或 HAVING 子句中)。
可以在表达式中使用参数作为占位符。 例如,你可能希望在每次运行查询时提供不同的折扣值来计算折扣价格。 为此,可以指定以下表达式:
(price * ?)
指定未命名和命名参数
可以指定两种类型的参数:未命名和命名。 未命名参数是一个问号(?),您可以在查询中任何需要提示输入或替换为具体文字值的位置使用。 例如,如果使用未命名参数在 titleauthor
表中搜索作者的 ID,则 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%
提示
在创建命名参数查询之前,必须定义前缀和后缀字符。
在查询和视图设计器中运行查询时,将显示“查询参数”对话框,其中包含命名参数的列表。
另请参阅
使用参数 查询 (Visual Database Tools)
支持的查询类型(Visual Database Tools)
设计查询和视图操作指南主题(Visual Database Tools)