SQL:存储过程中的子句:如何传递值

2023-12-12

我想编写一个 SQL Server 2005 存储过程,它将从用户表中选择并返回一些用户 ID 的用户记录,这些用户 ID 作为参数传递给存储过程。

这个怎么做 ?

我可以将用户 ID 作为以逗号分隔的字符串传递。这样我就可以使用

select * 
from users 
where userid in (userids)

例如。 : 我想选择id为5,6,7,8,9的记录

存储过程怎么写?


对于 SQL Server 2005,请查看 Erland Sommarskog 的优秀文章SQL Server 2005 中的数组和列表文章展示了如何在 SQL Server 2005 中处理列表和数组的一些技术(他还有另一篇关于 SQL Server 2000 的文章)。

如果您可以升级到 SQL Server 2008,则可以使用名为“表值参数”的新功能:

一、创建用户自定义表类型

CREATE TYPE dbo.MyUserIDs AS TABLE (UserID INT NOT NULL)

其次,在存储过程中使用该表类型作为参数:

CREATE PROC proc_GetUsers @UserIDTable MyUserIDs READONLY 
AS
SELECT * FROM dbo.Users
    WHERE userid IN (SELECT UserID FROM @UserIDTable)

查看具体信息here.

Marc

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL:存储过程中的子句:如何传递值 的相关文章

  • 获取每件商品的最新价格

    我有一张桌子 ItemID PurchaseDate Price 001 03 17 2013 19 00 002 03 17 2013 14 00 001 03 18 2013 13 00 002 03 18 2013 15 00 001
  • 使用 START WITH 和 CONNECT BY PRIOR 将查询从 oracle 迁移到 postgresql

    我正在将一个进程从 oracle 迁移到 postgresql 并且在它们的转换方面遇到了另一个问题 我一直在研究如何迁移oracle查询 它有 START WITH 和 CONNECT BY PRIOR 我已经对此进行了记录 我认为最简单
  • 更改 SQL Server 中所有表的所有列的排序规则

    我导入了一个包含一些数据的数据库 以便与另一个数据库进行比较 目标数据库有排序规则Latin1 General CI AS并且源数据库有SQL Latin1 General CP1 CI AS 我确实将源数据库的排序规则更改为Latin1
  • 查找SQL记录中的并发用户数

    我有以下结构的表 UserID StartedOn EndedOn 1 2009 7 12T14 01 2009 7 12T15 01 2 2009 7 12T14 30 2009 7 12T14 45 3 2009 7 12T14 47
  • 带可选参数的 SQL 更新命令?

    我将大约 500 000 个对象插入数据库 其中许多对象是相同的 在数据库中具有相同的主键表示 但其他字段可能不同 因此我使用方法 更新 如果没有行受影响 插入 问题是 有时一个对象的某些字段设置为 null 从文件中无法读取 并且已经在数
  • 开发和生产 SQL Server 之间使用不同的排序规则会出现哪些问题?

    盘问 无法更新 sys columns 还有其他方法吗 https stackoverflow com questions 4018347 unable to update sys columns any other approach含糊地
  • 使用存储过程并发访问MySQL数据库

    我有一个存储过程 它将读取然后增加数据库中的值 许多程序同时使用这个特定的过程 我担心并发问题 特别是读写器问题 有人可以建议我任何可能的解决方案吗 thanks 首先 正如另一篇文章中所述 使用 InnoDB 从 MySQL 5 5 开始
  • 查看tomcat服务器的连接数

    我在 Tomcat Server 5 5 17 上部署了一个 Java Java EE Web 应用程序 我想知道连接到服务器的客户端数量 我们怎样才能找到它呢 最可靠的方法是搜索ip addr of srv port in netstat
  • 如何使用存储过程 SQL SERVER 2008 R2(mssql) 插入 PHP 数组值

    我有这个数组 REV Array 0 gt 240 1 gt 241 2 gt 242 3 gt 243 4 gt 249 我现在使用下面的代码进行插入 将每个数组的元素存储在带有 id userID Type 和 Date 的行中 if
  • MySQL 命令输出在命令行客户端中太宽[重复]

    这个问题在这里已经有答案了 我在用mysql终端模拟器中的命令行客户端lxterminal在Ubuntu中 当我运行以下命令时 mysql gt select from routines where routine name simplep
  • 将表与同一个表的前一条记录连接起来

    我有一个包含历史记录的表 由主表中的多个触发器发布到那里 我想在历史表上创建一个 select 语句 其中每个记录都由其先前的记录 由相同的 LineID 和最高的 ActionDate 标识 连接 这样我就可以提取这两者之间的差异 我尝试
  • 如何使用 pgAdmin 恢复 postgreSQL 转储文件?

    我有一个 dmp 文件 想要从中恢复数据库 使用 pgAdmin 我该怎么做 在 PgAdmin3 内 在您正在使用的服务器中创建一个新数据库 右键单击该数据库并选择 恢复 使用 浏览器 按钮选择 dmp 文件 选择 恢复 开始恢复数据库
  • 从 Visual Studio 调试 SQL Server 2005 中的存储过程?

    我在这里和其他地方看到很多令人沮丧的问题 但没有明确的答案 我试图让存储过程进行调试 但没有成功 客户端 VS2005或VS2008 两者都不起作用 当我从存储过程上下文菜单中选择 步入存储过程 时 我在调试窗口中看到 已被用户取消 这就是
  • 我应该如何优化 .net 代码中对一个简单存储过程的多次调用?

    我有一个非常简单的存储过程 create procedure spFoo v varchar 50 as insert into tbFoo select v 我有 50 个值要插入到 tbFoo 中 这意味着在我的 c 代码中我调用 sp
  • LINQ-to-SQL 是否支持组合查询?

    作为一名不懂 C 的程序员 我对 LINQ 查询的求值语义很好奇 如下所示 var people from p in Person where p age lt 18 select p var otherPeople from p in p
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • 使用 sql 查询选择最近 30 天

    我正在查找过去 30 天内周一 周二 周三 周四 周五 周六 周日的数量 我可以在没有实际数据库表的情况下选择最近 30 天的日期和星期几吗 就像是 SELECT everything between convert date GETDAT
  • 对时间序列数据重新采样

    我有一个以毫秒为单位的时间序列列表 我想对时间序列进行重新采样并对组应用平均值 我如何在 Postgres 中实现它 重新采样 是指聚合一秒或一分钟内的所有时间戳 一秒或一分钟内的所有行形成一组 表结构 date x y z Use dat
  • 计算行数并仅获取表中的最后一行

    我有一张桌子叫employeexam其结构和数据是这样的 id course id employee id degree date 1 1 3 8 2013 01 14 2 2 4 15 2013 01 14 3 2 4 17 2013 0
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N

随机推荐

  • 如何在 PHP 中获取给定日期范围内的每周特定日期?

    这给了我日期范围内的每个星期一的日期 问题 如何获取一周中的每个星期一和星期五 start date date Y m d end date date Y m d strtotime start date 1 MONTH for i str
  • RxJava:将一个流(Observable)作为另一个流的输入

    我还在学习 RxJava 在另一个流中使用一个流的最佳方式是什么 或者说这违反了反应式编程的原则 我试图编写的一个玩具示例包括一个 TCP 客户端和一个发回大写输入的服务器 我想从标准输入获取输入 将其发送到服务器并打印出客户端和服务器收到
  • 使用现有的 ant build.xml 文件创建 eclipse 项目

    我正在尝试从现有的 ant build xml 文件在 eclipse 中创建一个项目 我收到找到的 javac 任务列表 并指示选择单个 javac 任务继续 如何处理 javac 任务 我不建议在这个阶段采用 Ant 路线 因为它会使事
  • 如何使用 Ghostscript 将 PDF 大小调整为 8.5 x 11 英寸?

    考虑this PDF 我正在尝试使用以下命令将其转换为标准字母大小 8 5 x 11 gs dFIXEDMEDIA dBATCH dNOPAUSE sPAPERSIZE letter dPDFFitPage q sDEVICE pdfwri
  • 互斥问题

    请看一下下面的伪代码 boolean blocked 2 int turn void P int id while true blocked id true while turn id while blocked 1 id do nothi
  • pThread同步问题

    我面临 pthread 同步问题 threadWaitFunction1 是一个线程等待函数 我预计行号 第247章flag 1仅在 243 246 完成后执行 但我觉得奇怪的是 有时 在243 246还没有完成之前 它就直接跳到247 请
  • Algid 解析错误,不是序列

    当尝试使用该方法从文件中读取 RSA 私钥时 public PrivateKey getPrivateKey throws NoSuchAlgorithmException InvalidKeySpecException IOExcepti
  • 在多台计算机上获取修补程序并导出到 CSV

    如何在输出文件中正确使用 这是我的代码 get content computers txt Where AND Test Connection Quiet foreach Get Hotfix computername Select CSN
  • 在时间序列的背景下分解

    我有一个数据集 我想要整体可视化并按几个不同的变量进行分类 我创建了一个 Flexdashboard 其中包含一个闪亮的应用程序来选择分解类型 并使用工作代码来绘制正确的子集 我的方法是重复的 这向我暗示我错过了更好的方法来做到这一点 让我
  • Laravel:传递默认变量以查看

    在 Laravel 中 我们都以几乎相同的方式将数据传递到视图 data array thundercats gt Hoooooooooooh return View make myawesomeview data 但是有没有什么方法可以将
  • Tomcat 7 中的 URLRewrite

    我计划开发一个内联网应用程序 Java客户端 JSP SQLite 这样做的目标是 当用户单击链接时 如果用户有权访问 在业务逻辑中处理的团队 则应提供文件以供下载 数据库中有一个表保存信息 下面是示例行 ID file team md5
  • 设置大货币数字的格式

    使用 FormatStyle API 是否可以使用 20M 或 10k 等尾随 SI 单位来格式化大数字 特别是 我正在寻找一种使用适当的本地化和货币符号来格式化大货币值 例如 20M 的方法 我目前有一个货币格式化程序 extension
  • 按 Import-CSV 中的最大数值对对象进行排序

    我想要文件顶部的最大值 mailboxSize 我有一个简历作为输入 当我执行以下排序命令时 Import Csv import csv Sort Object MailboxSize DisplayName Descending Expo
  • C++ 函数原型?

    这是新手问题 5 但我没有老师 所以 无论如何 我们开始 我想知道是否有必要将函数原型放在文件顶部 而不是将main函数到文件末尾并在文件顶部创建所有函数 据我所知 VC 和 G 都没有抱怨 是否存在不允许我这样做的标准 当您更改函数参数和
  • 奇怪的 Ajax ComboBox 下拉列表

    我在某个面板中有组合框
  • 删除 display:flex 会在链接周围添加空格。为什么?

    我创建了一个 html 错误页面 它有 2 行显示错误 第二行有主页链接 为了使两条线保持在中心 我创建了一个顶层css grid并使网格的每一行成为flex 我注意到如果我使用display flex对于第二行 周围没有任何空间here链
  • jQuery .toggleClass 不切换 CSS 类

    The highlight开启时课程不工作 button 我究竟做错了什么 HTML
  • 图中2个节点之间的所有路径

    我必须制作一个无信息搜索 广度优先搜索 程序 该程序需要两个节点并返回它们之间的所有路径 public void BFS Nod start Nod end Queue
  • 全屏背景图像被拉伸

    我为我的一个客户制作了一张全屏背景图像 但问题是 当我使用以下 css 代码使图像适合所有屏幕时 bg image img position fixed left 0 top 0 width 100 max height 100 bg im
  • SQL:存储过程中的子句:如何传递值

    我想编写一个 SQL Server 2005 存储过程 它将从用户表中选择并返回一些用户 ID 的用户记录 这些用户 ID 作为参数传递给存储过程 这个怎么做 我可以将用户 ID 作为以逗号分隔的字符串传递 这样我就可以使用 select