sql-server - 将结果集限制为第一行中第一列的值?
问题描述
我正在使用 Microsoft SQL Server 2016。
我有一个动态 SQL 情况,其中传入的查询可能是 SQL 命令,也可能是存储过程。我需要能够获取结果集左上角的第一个值。我已经找到了一种方法来为 SQL 做到这一点,但不是为存储过程。
对于 SQL 脚本,我sp_describe_first_result_set
用来确定有多少列,并生成一个包含空列的匹配脚本以联合起来,如下所示:
select null as C1, null as C2 where 1=0 union all select 'hello', 'world'
这使得获取top 1 C1
.
但是,对于存储过程,我不能使用相同的技术,因为有时存储过程具有不同的返回路径,这会导致sp_describe_first_result_set
. 我无法将结果集插入到临时表中,因为我不知道有多少列或列是什么。
解决方案
推荐阅读
- python - Pip 安装 Keras 和 TensorFlow 缺少软件包?
- javascript - 为什么尝试访问 React 组件的类名会导致 ReferenceError?
- heroku - 连接两个免费的 Heroku 应用程序以同时唤醒
- java - Swing 动画滞后,SwingWorker 没有帮助?
- python - 如何从 matplotlib 中删除工具栏按钮
- python - 没有收到来自我的 Django 项目的任何电子邮件以重置用户密码
- jenkins - 如何使用 Rest api 从 Jenkins 作业输出控制台访问 Jenkins 环境变量
- python - 来自类记录器的重复消息
- angular - Ionic 3 - 在 chrome 中调试不是正确的点
- visual-studio-code - 我是否必须手动解析文档才能显示 SignatureHelp?