参数查询 (Visual Database Tools)

适用于:SQL Server

在某些情况下,需要创建一个查询,该查询可以多次使用,但每次使用不同的值。 例如,你可能经常运行查询来查找由某个作者所写的所有 title_ids。 可以针对每个请求运行相同的查询,但每次作者的 ID 或名称会有所不同。

若要创建可以在不同时间具有不同值的查询,请在查询中使用参数。 参数是查询运行时提供的值的占位符。 具有参数的 SQL 语句可能如下所示,其中“?” 表示作者 ID 的参数:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

何时使用参数

可以将参数用作文本值的占位符 - 对于文本或数值。 通常,参数用作单个行或组的搜索条件中的占位符(即 SQL 语句的 WHEREHAVING 子句)。

可以在表达式中使用参数作为占位符。 例如,你可能希望在每次运行查询时提供不同的折扣值来计算折扣价格。 为此,可以指定以下表达式:

(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%

提示

在创建命名参数查询之前,必须定义前缀和后缀字符。

在查询和视图设计器中运行查询时,将显示“查询参数”对话框,其中包含命名参数的列表。