sql-server - 范围的存储过程参数
问题描述
这个问题专门针对提供 SSRS 报告的存储过程,但我想它可以应用于任何存储过程。
通常我们将一个范围发送到存储过程以获取该范围的数据。例如,获取名称以“A”到“K”开头的客户的所有客户数据。在客户端,我有一个所有客户名称的下拉列表(提前输入),用户可以选择开始和结束。在下拉列表中,我只显示客户的姓名,但我也有客户的 ID。现在值得说明的是,这只是一个例子,我并不总是在“A”和“K”之间寻找客户。有时范围是完全不同的东西。为简洁起见,我们将坚持使用客户名称。
假设用户选择了以下内容:
- 开始于:Elaine Benes (CustomerId: 199)
- 结束 : Jerry Seinfeld (CustomerId: 3)
现在我有 2 个选项可以将这些参数传递给存储过程。
- 通过名称“Elaine Benes”和“Jerry Seinfeld”
- 传递 ID 199 和 3。在存储过程端找到 199 的名称和 3 的名称并使用它们。
如果我选择选项 1,如果客户端没有使用包含客户表中名称的下拉列表,他们可以传递任何字符串。选项 2 强制他们发送客户的 ID。但是选项 2 需要在存储过程端查找 Id 以找到名称,因此需要做一些额外的工作。
我的问题是我应该选择哪些选项?每种方法有什么优点/缺点?
解决方案
推荐阅读
- altair - 将列表中的一系列图连接到复合图?
- c# - AvalonEdit:获取 IBackgroundRenderer 的视觉位置
- docker-swarm - Docker swarm LetsEncrypt nginx 容器写入 /var/log
- django - django 模板 - 字符串连接到变量名
- python - 我在使用框架 scrapy: 403(forbidden) 或 200 with unworking def parse 抓取 https://www.autotrader.co.uk/ 时遇到了一些问题
- vue.js - 加载组件时如何检索数据
- arrays - 如何计算自定义类型数组的各个变量的总和?
- javascript - 如何在 Ramda 中使用传入的 args 参数调用传入的 args 函数?
- javascript - 无法使用 Jquery 将对象 ID 推送到输入值
- firebase - Xamarin.Android RecyclerView 通知项目更改导致问题