首页 > 解决方案 > 范围的存储过程参数

问题描述

这个问题专门针对提供 SSRS 报告的存储过程,但我想它可以应用于任何存储过程。

通常我们将一个范围发送到存储过程以获取该范围的数据。例如,获取名称以“A”到“K”开头的客户的所有客户数据。在客户端,我有一个所有客户名称的下拉列表(提前输入),用户可以选择开始和结束。在下拉列表中,我只显示客户的姓名,但我也有客户的 ID。现在值得说明的是,这只是一个例子,我并不总是在“A”和“K”之间寻找客户。有时范围是完全不同的东西。为简洁起见,我们将坚持使用客户名称。

假设用户选择了以下内容:

现在我有 2 个选项可以将这些参数传递给存储过程。

  1. 通过名称“Elaine Benes”和“Jerry Seinfeld”
  2. 传递 ID 199 和 3。在存储过程端找到 199 的名称和 3 的名称并使用它们。

如果我选择选项 1,如果客户端没有使用包含客户表中名称的下拉列表,他们可以传递任何字符串。选项 2 强制他们发送客户的 ID。但是选项 2 需要在存储过程端查找 Id 以找到名称,因此需要做一些额外的工作。

我的问题是我应该选择哪些选项?每种方法有什么优点/缺点?

标签: sql-serverstored-proceduresssrs-2012

解决方案


推荐阅读