SQL Server 存储过程中的循环

2024-04-24

我需要帮助编写调用另一个存储过程并向其传递值的存储过程。到目前为止,这是用 C# 完成的,现在我想将其移动到存储过程并创建一个在特定时间调用它的 SQL 代理作业。有任何想法吗?情况就是这样。

Table A:

PK_TableA_ID

Table B:

PK_TableB_ID

存储过程SP1:

@TableA_ID
@TableB_ID

我需要这个,但是在 T-SQL 中

foreach(var TableAId in TableA)
{
foreach(var TableBId in TableB)
{
//call stored procedure 
SP1(TableAId, TableBId);
}
}

以下是如何使用游标执行循环的示例:

-- set up some test data
declare @table_a table (PK_TableA_ID int)
declare @table_b table (PK_TableB_ID int)
insert @table_a values (1),(2),(3)
insert @table_b values (4),(5),(6)    

-- do the actual processing
SET NOCOUNT ON

DECLARE @TableA_ID int, @TableB_ID int

DECLARE TableA_cursor CURSOR FOR SELECT PK_TableA_ID FROM @table_a

OPEN TableA_cursor
FETCH NEXT FROM TableA_cursor INTO @TableA_ID

WHILE @@FETCH_STATUS = 0
BEGIN
    DECLARE TableB_cursor CURSOR FOR SELECT PK_TableB_ID FROM @table_b

    OPEN TableB_cursor
    FETCH NEXT FROM TableB_cursor INTO @TableB_ID

    WHILE @@FETCH_STATUS = 0
    BEGIN
        PRINT CAST(@TableA_ID AS CHAR(1)) + ':' + CAST(@TableB_ID AS CHAR(1))
        -- execute your stored procedure here:
        -- EXEC Your_stored_procedure (@TableA_ID, @TableB_ID) 
        FETCH NEXT FROM TableB_cursor INTO @TableB_ID
        END

    CLOSE TableB_cursor
    DEALLOCATE TableB_cursor

    FETCH NEXT FROM TableA_cursor INTO @TableA_ID
END 
CLOSE TableA_cursor
DEALLOCATE TableA_cursor

上面的游标(带有临时表中的测试数据)将生成以下输出:

1:4
1:5
1:6
2:4
2:5
2:6
3:4
3:5
3:6

不过,使用游标可能不是解决问题的最佳方法。

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

SQL Server 存储过程中的循环 的相关文章

  • 针对树结构优化 SQL

    如何从数据库中获取具有最佳性能的树形结构数据 例如 假设数据库中有一个文件夹层次结构 文件夹数据库行所在的位置ID Name and ParentID列 您会使用特殊的算法一次获取所有数据 最大限度地减少数据库调用量并在代码中处理它吗 或者
  • SQL Server 中的循环行

    我有一个包含 2 列的 SQL Server 表 Code 和 CodeDesc 我想使用 T SQL 循环遍历行并打印 CodeDesc 的每个字符 怎么做 如果您确实想循环遍历行 则需要光标 CURSOR http msdn micro
  • ORA-01438: 值大于此列允许的指定精度

    有时我们会从合作伙伴的数据库中收到以下错误 i ORA 01438 value larger than specified precision allows for this column i 完整响应如下所示
  • 仅从 MySQL 中的日期时间 (YYYY-MM-DD HH:MM:SS) 中选择不同的日期

    执行此命令会带来以下结果 所有列中的所有日期 因此它本质上与 SELECT date 执行相同的操作 没有不同 SELECT DISTINCT date FROM daily ORDER BY date DESC 2013 02 12 16
  • 如何在 SQL Server 2000 中传递大于 varchar(8000) 的字符串参数?

    如果将字符串参数定义为大小大于 8000 则会出现编译错误 e g The size 9000 given to the type varchar exceeds the maximum allowed for any data type
  • 两种 SQL 连接符号有什么区别?

    SQL 1 select from t1 join t2 on t1 f1 t2 f2 SQL 2 select from t1 t2 where t1 f1 t2 f2 他们返回的结果是相同的 它们之间有什么区别吗 例如 DBMS 如何运
  • Windows 批处理文件中的 SQL 语句

    有没有办法让Windows批处理文件直接输入SQL语句而不需要调用脚本 我希望批处理文件登录SQL 然后直接输入语句 EDIT 我正在使用 Oracle v10g 对于单个命令 您可以使用以下技巧 echo select from dual
  • 将 DD-Mon-YYYY 转换为 DD/MM/YYYY

    我需要转换 dt of birth varchar 15 其格式为DD Mon YYYY to DD MM YYYY dt of birth在不同的表中指定 并且必须完成转换并将其存储在具有相同列名的另一个表中dt of birth Her
  • 如何在 BigQuery 中取消透视?

    不确定要调用什么函数 但转置是我能想到的最接近的函数 I have a table in BigQuery that is configured like this 但我想查询一个配置如下的表 创建此表的 SQL 代码是什么样的 Thank
  • SQL 查询:按 ntext 字段分组

    我有以下查询 它基本上检索销量最高的 5 本书 select top 5 count id book orddetails books sold bk from orderdetails orddetails ord inner join
  • 在 SQL 表中的文本字符串中查找换行符?

    我试图在 SQL 表的列中查找换行符和回车符 但我不确定语法 I tried SELECT foo FROM test WHERE foo LIKE CHAR 10 尽管我知道该表应该返回结果 但我没有得到任何结果 我究竟做错了什么 SEL
  • 在 LINQ 中选择案例[重复]

    这个问题在这里已经有答案了 我怎样才能把它翻译成 LINQ 呢 select t age as AgeRange count as Users from select case when age between 0 and 9 then 0
  • 在 Transact SQL 中何时使用 EXCEPT 而不是 NOT EXISTS?

    我最近刚刚通过阅读同事编写的代码了解到 SQL Server 中存在新的 EXCEPT 子句 有点晚了 我知道 真的让我很惊讶 但是我对它的使用有一些疑问 建议什么时候使用它 使用它与使用 AND NOT EXISTS 的相关查询在性能方面
  • 似乎找不到循环 PL/SQL 数组的方法?

    我正在尝试这样做 arrCauses APEX UTIL STRING TO TABLE P1 CAUSE FOR c IN 1 arrCauses count LOOP INSERT INTO DT EVENT CAUSE EVENT I
  • 为什么根据检索顺序从 ADO Recordset 中获取空值而不是正确值? (DB表有NTEXT值)

    我有一个数据库表有两个datetime我需要使用 VBScript 从 ASP 页面读取可为空的列 这是我写的代码 Set cmd Server CreateObject ADODB Command With cmd ActiveConne
  • 加入多对多关系

    我有三个表 applications permissions 和 applications permissions applications applications permissions permissions id lt applic
  • 如何提取 MySQL 日期中的月份和年份并进行比较?

    如何从 mySQL 日期中提取月份和日期并将其与另一个日期进行比较 我找到了 this MONTH 但它只获取月份 我寻找月份和年份 在Mysql Doku中 http dev mysql com doc refman 5 5 en dat
  • MySQL SUM 具有相同的 ID

    抱歉 这个真正简单的问题 我刚刚学习 PHP 和 MySQL 我已经在谷歌上搜索了一个多星期 但没有找到任何答案 我创建了一个简单的财务脚本 表格如下 table a aid value 1 100 2 50 3 150 table b b
  • SSMS 对象资源管理器 - 连接到 Azure DB 时选择丢失的前 N ​​行

    我刚刚将 SSMS 升级到 2008 R2 我缺少从表中选择前 1000 行的选项 如下所示 我的看起来像这样 我知道如何更改显示的行数 但根本不存在这些选项 几年前我看到有人为此提交了一个错误 但没有解决方法 我不知道该怎么办 有任何想法
  • 使用 Android 应用程序将条目发布到 SQL Server

    我是一个真正的新手 如果这个问题听起来很愚蠢 我提前道歉 我正在尝试创建一个应用程序 允许我将客户数据发布到 Windows 服务器上的 SQL Server 这可能吗 如果是这样 我需要什么 再次感谢您的帮助 如果这是一个愚蠢的问题 我再

随机推荐

  • Laravel,获取当前登录的用户

    我想在应用程序中显示当前登录用户的列表 我想使用 Laravel Auth 方法 我正在查看 API 但找不到类似的东西 我可能需要循环访问会话存储 然后将其与用户 ID 匹配 我对吗 更新 忘了提及 我将会话存储在数据库中 当前登录 是普
  • 为字符串数组分配内存

    我想使用两个函数填充一个字符串数组 第一个 如果我有n个字符串要分配 将分配n个内存空间 第二个将为每个读取的字符串分配内存 这是第一个函数 char allocate int n char t t char malloc n sizeof
  • 数据透视表:检测数据透视字段何时折叠

    对于数据透视表中显示的数据 我选择对数据表的某些部分应用条件格式以突出显示某些范围内的值 弄清楚如何以不同于小计数据的方式突出显示第二级行数据很有趣 但我能够解决它 我的 VBA 使用以下命令触发Worksheet PivotTableUp
  • Google / OAuth 2 - 自动登录

    我正在尝试结合一些 Google API 来使用 OAuth 2 0 虽然授权过程非常简单 但在初始授权完成后 我遇到了自动授权的问题 So 1 Authorization is done for the first time user g
  • Tomcat 是否立即支持 JAX-RS(它是否支持 JAX-RS)?

    从教材 RESTful Java with JAX RS 中我们可以读到 如果我们的应用程序服务器是 JAX RS 感知的 或者换句话说 与 JAX RS 紧密集成 则声明我们的ShoppingApplication作为 servlet 的
  • iOS/WKWebView 上 SVG 的随机故障渲染

    在我们的 iOS 应用程序中显示 SVG 图标时 我们遇到了奇怪的间歇性 非常偶然 渲染故障 基于WKWebView 当它确实发生时 它似乎可能与 CSS 相关 因为如果我在调试页面时在 Safari 中更改一些随机 甚至完全不相关 的 C
  • 电脑重启后Eclipse无法启动

    我的 Eclipse 没有启动 因为我的计算机有点冻结 所以我不得不强制重新启动它 当我不得不重新启动时 Eclipse 已打开 我相信这很可能是原因 我不知道如何解决这个问题 每当我尝试打开它时 它都会告诉我检查工作区中的 log 文件
  • PHP 根据值列计算文本文件的行数

    继续我之前的question https stackoverflow com questions 52397274 php count text file rows based on date and time 我有名为拒绝的文本日志文件
  • 在 pgAdmin 中创建 ER 图 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 请提供有关如何使用附带的管理工具构建基本实体关系图 ERD 的分步答案 postgres pgAdmi
  • Seaborn 热图引发意外错误

    我正在尝试执行以下代码 import seaborn as sns import pandas as pd import numpy as np year range 1949 1961 month January February Mar
  • 将小数转换为尽可能小的数字类型,而不会丢失任何数据

    我想写一个方法来转换decimal尽可能最小的数字类型 而不会丢失任何数据 举些例子 Convert 1 应该返回一个byte Convert 257 应该返回一个short Convert 1 1 应该返回一个float 等等 该方法的输
  • SQL:计数和子查询

    再次使用 count 和 sql 在 sqlite 上 我有表格 论文 paper id doi 年份 作者 paper id author id inst id 作者 作者 ID 姓名 名字 安装 inst id 名称 see id in
  • 在哪里检查用户电子邮件尚不存在?

    我有一个帐户对象 可以像这样创建用户 public class Account public ICollection
  • 在 JQuery 中选择自定义数据属性

    我这里有一个清单 ul li here li li are li li some li li initial li li tags li ul 其中每个 li 项都有一个自定义数据属性 在 JQuery 上如何获取具有 data value
  • 队列对象只能通过继承在进程之间共享

    我有两个 python 类 它们共享一个基类 可以说它定义了一个 multiprocessing Queue 每个类都将在单独的子进程上启动 并且需要通过队列共享信息 现在 如果基类定义了一个队列 那么每个子类对象将实例化它自己的队列 从而
  • Android 应用程序首选项会自动清除

    突然之间 每次我启动应用程序时 我的用户首选项都会被清除 我没有直接在 Activity 中使用首选项 而是在我的 Application 对象中有一个辅助类 它可以像这样访问首选项 SharedPreferences prefs Pref
  • Meteor:多个不需要的 mongodb 连接使数据库部署饱和

    我维护了一些部署在 AWS elastic beanstalk 64 位 Amazon Linux 4 5 2 上的meteor 1 7 0 3 应用程序 所有连接到托管 mongodb 部署 在 Compose 上 mongodb 版本
  • Compass (sass) 和 Web 开发人员扩展

    我经常使用 Web 开发人员扩展中的 编辑 css 功能来编辑样式表 这是一个很棒的功能 但编辑 css 并将其复制回编辑器进行保存需要时间 我计划在下一个项目中使用 Compass 我想知道如何使用 SASS Compass 的 编辑 c
  • Java - 调整 WAV 文件的播放速度

    我可能很笨 但我似乎找不到解决我的问题的方法 NOTE 我发现很多人报告了这个问题 似乎它是由于较新的 Java 可能是 1 5 而发生的 也许不再支持 SAMPLE RATE 我无法找到任何解决方案 我正在尝试调整 SAMPLE RATE
  • SQL Server 存储过程中的循环

    我需要帮助编写调用另一个存储过程并向其传递值的存储过程 到目前为止 这是用 C 完成的 现在我想将其移动到存储过程并创建一个在特定时间调用它的 SQL 代理作业 有任何想法吗 情况就是这样 Table A PK TableA ID Tabl