如何在存储过程之间共享数据[关闭]

2024-01-08

在 MS SqlServer 中,存在许多与在另一个存储过程中共享一个存储过程的数据结果相关的问题。

根据 SQL Server 的版本,人们建议使用临时表、xml (SQLServer 2005) 或表变量 (SQL Server 2008)。

有一篇很棒的文章,作者是厄兰·索马斯科格 http://www.sommarskog.se它提供了全面的答案并列出了不同版本的 SQL 中可用的所有选项:

  • 如何在存储过程之间共享数据 http://www.sommarskog.se/share_data.html

我认为值得分享。

我看到那篇文章的时候阅读 deevus 的回答 https://stackoverflow.com/questions/464191/assign-function-result-to-a-table-variable#464198建议使用INSERT-EXEC 语句 http://www.sommarskog.se/share_data.html#INSERTEXEC,一些我以前不太熟悉的东西


有一篇很棒的文章,作者是厄兰·索马斯科格 http://www.sommarskog.se它提供了全面的答案并列出了不同版本的 SQL 中可用的所有选项:

  • 如何在存储过程之间共享数据 http://www.sommarskog.se/share_data.html

本文讨论了两个相关的 问题:

  • 我如何使用一个结果集 另一个中的存储过程也 表示为如何使用结果 从存储过程中设置 选择语句?
  • 我怎样才能通过 表作为一个存储的参数 程序到另一个?

在本文中 我将讨论多种方法, 并指出自己的优点 和缺点。一些方法 仅当您想重复使用时才适用 结果集,而其他应用在 两种情况。在你想要的情况下 要重用结果集,大多数方法 要求你重写存储的 以一种或另一种方式进行程序,但是 有些方法则不然。

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

如何在存储过程之间共享数据[关闭] 的相关文章

  • <表值函数> 不是可识别的内置函数名称

    我收到此错误 消息 195 第 15 级 状态 10 第 1 行 fnParseName 不是可识别的内置函数名称 对于这个查询 SELECT fnParseName DOCTORFIRSTNAME DOCTORLASTNAME FROM
  • 从java运行sqlplus脚本的简单方法

    我有包含 sqlplus 特定脚本的 sql 文件 它包括 或 作为语句终止符 执行存储过程的 EXEC 等 我需要从 java jdbc 执行此脚本 而不需要 sqlplus sql ant任务 maven sql插件无法处理不同的终止符
  • SQL Server 端口 445 和 1433

    SQL Server 端口 445 和 1433 之间有什么区别以及每个端口的用途是什么 445不是SQL端口 是SMB端口 仅当您使用命名管道协议时 它才会参与 SQL Server 因为命名管道通过 SMB 进行传输 而这反过来又使用
  • 将逗号分隔的主数据替换为列中的描述

    有 2 个 SQL Server 表 Products Name Status Code Product 1 1001 1003 Product 2 1001 1005 1006 Status Code Description 1001 S
  • MySQL通过UPDATE/DELETE合并重复数据记录

    我有一个看起来像这样的表 mysql gt SELECT FROM Colors ID USERNAME RED GREEN YELLOW BLUE ORANGE PURPLE 1 joe 1 null 1 null null null 2
  • 使用 SQL 扩展事件捕获链接服务器查询

    我尝试了许多事件类型 但无法实现链接服务器的日志记录 我可以找出所有其他数据库的事件 但对于链接服务器却没有运气 有什么建议 您可以使用OLEDB DATA READ跟踪对链接服务器的查询的事件 如果此事件的结果比您想要的更详细 您可能需要
  • 从 Presto 中的 JSON 列获取特定值

    我有一个带有 JSON 列的表points其中一行为 0 0 2 1 1 2 2 0 5 15 1 2 20 0 7 我想获取键的值 1 and 20 并将它们存储为别名 例如first and second在查询中 到目前为止我所做的是
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • SQL Server 2008 中的全文搜索一步一步

    如何开始使用SQL Server 2008 中的全文搜索 阅读这些链接 SQL SERVER 2008 创建全文目录和全文搜索 http blog sqlauthority com 2008 09 05 sql server creatin
  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • 如何编写不返回任何内容的 postgres 存储过程?

    如何在 postgres 中编写一个根本不返回值的简单存储过程 即使使用 void 返回类型 当我调用存储过程时 我也会返回一行 CREATE FUNCTION somefunc in id bigint RETURNS void AS B
  • 如何获取Postgres当前的可用磁盘空间?

    在开始在数据库中进行某些工作之前 我需要确保至少有 1Gb 的可用磁盘空间 我正在寻找这样的东西 select pg get free disk space 是否可以 我在文档中没有找到任何相关内容 PG 9 3 操作系统 Linux Wi
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • 从一张表更新并插入另一张表

    我有两张桌子 table1 ID 代码 姓名 table2 ID 代码 姓名 具有相同的列 我想将数据从 table1 插入到 table2 或更新列 如果 table2 中存在 table1 ID table2 ID 执行此操作的简单方法
  • 如何删除MySQL中的所有事件

    如果我想删除某个事件 我需要查询类似的内容 DROP EVENT IF EXISTS eventname 但我找不到一次性删除所有事件的命令 必须一项一项地删除 有没有一次性删除所有事件的SQL DROP EVENT IF EXISTS S
  • 在 SQL Management Studio 2012 中调试

    我正在使用 Management Studio 2012 但无法调试任何 SQL 代码 在我点击 调试 按钮后 左侧没有看到任何绿色箭头 并且我的 SQL 对象都没有加载到内存中 当我将光标移到我设置的断点上时 我收到此消息 The bre
  • INTEGER 到 DATETIME 的转换与 VB6 不同

    我正在查看一些遗留的 VB6 代码 比我的时代早很多年 它对 SQL 2005 数据库运行查询 它提供了日期限制WHERE子句 其中日期作为整数值给出CLng VB6 中的日期 e g WHERE SomeDateField gt 4006
  • LEFT JOIN 比 INNER JOIN 快得多

    我有一张桌子 MainTable 有超过 600 000 条记录 它通过第二个表连接到自身 JoinTable 在父 子类型关系中 SELECT Child ID Parent ID FROM MainTable AS Child JOIN
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都

随机推荐

  • 使用channelId获取YouTube频道个人资料图片

    因此 我尝试使用channelId 获取YouTube 频道的频道个人资料图片 我想简单地通过将channelId 添加到URL 并以这种方式获取图像来完成此操作 Facebook 有类似的东西 你可以使用这个 URL http graph
  • 使用 Symfony3.3 将存储库注入服务时出错

    我有一个由服务层和存储库层组成的应用程序 对于服务和存储库 我都声明了接口 并在控制器中注入服务的接口 并且服务被注入存储库的接口 这一切都是通过将 autowire 设置为 true 来完成的 当我在注入的服务之一上调用方法时 只要我不调
  • 使用 get_meta_tags() 函数检索同名元

    我正在尝试检索带有 php 的网页获取元标签 https www php net manual fr function get meta tags php功能 担心的是我的网页包含两个相同的元 And get meta tags 似乎只想检
  • 如何正确、安全地释放 C 中使用嵌套结构的所有内存?

    我嵌套了四层不同的结构 代码如下 typedef struct System system typedef struct College college typedef struct Student student typedef stru
  • Java JDK 8 IndexedPropertyDescriptor 自 JDK 7 以来已更改为 List 对象

    我有一个简单的问题 我有一个在 Java JDK7 中运行的程序 但由于一些内省更改而无法在 JDK8 中运行 这是重现该问题的测试程序 import java beans BeanInfo import java beans Intros
  • 使用异常时 SFINAE 仍然产生错误

    我正在学习 C 中的 SFINAE 因此 在阅读完相关内容后 我正在尝试不同的示例以更好地理解这个概念 下面我给出了 2 个片段 其中 1 个我能理解 但第二个片段是我使用过的noexcept在声明中我无法理解 实施例1 这个我能理解 in
  • 抽象工厂和控制反转在运行时解析

    我有以下类和接口结构 并且我很难尝试让代码执行我需要的操作 public interface IUserManager int Add User user public class UserManagerA IUserManager pub
  • 在控制台应用程序中获取连接字符串[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我创建了一个控制台应用程序项目 然后将新的 App conf 文件添加到我的项目中 在我的配置文件中 我复制了通过添加实体框架创建
  • 将多个项目添加到一个 Git 存储库中

    我是设置 Git 服务器的新手 我想在单个 Git 存储库下添加多个项目 目前我有一个 Git 存储库 其中仅包含一个项目 该项目在单个文件夹中包含 IOS 项目代码 现在 我遇到了一种情况 我需要在同一存储库下但在不同的文件夹中添加 MA
  • 分配零容量ByteBuffer [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 谁能告诉我分配零长度缓冲区的可能目的是什么 ByteBuffer allocate 0 no IllegalArgumentException
  • 将字节的二进制字符串表示形式转换为 Python 中的实际二进制值

    我有一个字节的二进制字符串表示形式 例如 01010101 如何将其转换为真正的二进制值并将其写入二进制文件 Use the int功能 http docs python org library functions html int wit
  • 智能脸4.3.0。 IOS模拟器错误

    Smartface 模拟器适用于 Android 但对于 ios 它给我 保持冷静 您需要从应用商店下载正在运行的 Smartface 然后重试 错误 但我已经安装了 我的itunes版本是12 1 2 我检查了防火墙 它没有阻止 idb
  • 有什么方法可以用预处理器替换部分单词吗?

    我的 Objective C 课上有类似的东西 interface PREFIX MyClass end 我想使用预处理器将其转换为 interface AwesomeMyClass end 所以像 define PREFIX Awesom
  • C/C++ 中文件名中的下划线有什么规则吗?

    我知道有使用下划线的规则身份标识在 C C 中 https stackoverflow com a 228797 1995714 在源代码文件名中使用它们有什么规则吗 例如 对于以下划线开头或结尾的文件名是否有任何限制 或者将下划线作为最后
  • java中如何将对象添加到ArrayList中

    这里有两个类 查询语句和stackov 数组列表用于存储查询语句类的对象 但是最近添加的对象会覆盖之前的对象 如何添加对象以使它们不被覆盖 查询语句 java public class QuerySentence public static
  • 将 WinForms 应用程序与本机 DLL 一起打包

    尝试找出如何使用 Visual Studio 2017 Desktop Bridge 应用程序打包项目 打包以下解决方案 NET 库 DLL WinForms 可执行文件引用 1 本机 C DLL 通过 DllImport 导出 1 和 2
  • el-api-1.0.jar - jar 未加载 - 违规类:javax/el/Expression.class

    我正在尝试使用 RestEasy 运行一个简单的安静服务 以下是我的设置 汤姆猫7 Eclipse 和 Maven Maven 安装并将 war 文件复制到 webapps 文件夹 部署 war 文件时 catalina out 文件会显示
  • 使用 strtod strtof atof printf 进行区域设置不变的字符串处理?

    是否有计划添加在当前语言环境下不变的 C 标准库字符串处理函数版本 目前有很多脆弱的解决方法 例如来自 jansson strconv c 的 static void to locale strbuffer t strbuffer cons
  • 将 c 字符串中的字符转换为其转义序列

    我需要一个像这样的函数字符串ToLiteral 字符串输入 from 这个帖子 https stackoverflow com questions 323640 can i convert a c string value to an es
  • 如何在存储过程之间共享数据[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在 MS SqlServer 中 存