SQL Server存储过程参数输出

2024-02-25

我有一个存储过程,为了这个问题的目的,我已经大大缩小了它的规模,但本质上我需要帮助的问题是这个。

如果表中的一行xyz已更新 我需要将 ID 相互附加并输出回调用应用程序。更新按预期工作,问题在于我构建输出的方式@IPV_ID_Found(请参阅代码底部的注释部分)。

@IPV_Status varchar (50),
@IPV_ID_Found varchar(500) = 'A' OUTPUT 

IF (@IPV_Status ='closed')
BEGIN
UPDATE TEST_TBL
 SET
    Status  = 'xyz',        
 WHERE                  
    ID      =  @IPV_ID 

  -- this works for one ID
  SELECT @IPV_ID_Found = (CAST(@IPV_ID AS VARCHAR(500)))    

  -- this does not work for multiple IDs
  SELECT @IPV_ID_Found = @IPV_ID_Found + (CAST(@IPV_ID AS VARCHAR(500))) + ','

  -- neither does this
  SET @IPV_ID_Found = @IPV_ID_Found + (CAST(@IPV_ID AS VARCHAR(500))) + ','

  SELECT @IPV_ID_Found                  
END

查看更改:

 -- this does not work for multiple IDs
  SELECT @IPV_ID_Found = @IPV_ID_Found + ',' + (CAST(@IPV_ID AS VARCHAR(500))) 

然后你会得到一个串联的值列表,比如1,2,3,4,5

BUT如果需要返回记录集,则不需要 OUTPUT 参数,而是使用表变量:

declare @IPV_ID_Found table(Item varchar(500))

IF (@IPV_Status ='closed')
BEGIN
UPDATE TEST_TBL
 SET
    Status  = 'xyz',        
 WHERE                  
    ID      =  @IPV_ID 

  -- this works for one ID
  insert @IPV_ID_Found 
  VALUES (CAST(@IPV_ID AS VARCHAR(500)))    

  -- this does not work for multiple IDs
  INSERT @IPV_ID_Found 
  VALUES (CAST(@IPV_ID AS VARCHAR(500)))

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

SQL Server存储过程参数输出 的相关文章

  • SQL Server:将 varchar 转换为十进制(也考虑指数表示法)

    我需要转换表的数据并进行一些操作 其中一种列数据类型是Varchar 但它存储decimal数字 我正在努力转换varchar into decimal 我努力了CAST TempPercent1 AS DECIMAL 28 16 问题是数
  • SQL:列出多个连接语句中的重复记录?

    你好 以下查询在连接多个表后返回所有员工 select e from dbo EMP e join dbo HREMP a on a ID e ID join dbo LOGO c on c EMPID e id join dbo LOGO
  • 在调用存储过程 Sql Server 2008 时使用嵌套存储过程结果

    是否可以在另一个存储过程中使用一个存储过程的结果 I e CREATE PROCEDURE dbo Proc1 ID INT mfgID INT DealerID INT AS BEGIN DECLARE Proc1Result UserD
  • SQL 删除自动命名约束

    我使用脚本在表上创建了一些约束 但未指定约束名称 结果 我最终受到了像这样的限制FK DOC OBGS kntr 54E63309例如 是否可以在不指定确切的约束名称的情况下删除该约束 例如 类似这样的东西 不起作用 ALTER TABLE
  • 当我尝试连接到数据库时收到“错误:无法初始化 OLE”? C#

    我正在尝试通过 C 连接到数据库 但这样做时收到一条非常无用的错误消息 08 44 17 错误 无法初始化 OLE 08 44 17 错误 无法初始化 OLE 我尝试寻找解决方案 但没有成功 我也尝试重新启动计算机 但这也没有帮助 我正在运
  • 如何跟踪数据库连接泄漏

    我们有一个应用程序似乎存在连接泄漏 SQL Server 表示已达到最大池大小 我独自一人在我的开发机器上 显然 只需导航应用程序 我就会触发此错误 SQL Server 活动监视器显示大量正在使用我的数据库的进程 我想查找哪些文件打开连接
  • 在 SQL Server 中选择条件的值[重复]

    这个问题在这里已经有答案了 在查询选择中 我想显示字段是否满足条件的结果 想象一下我有一张名为stock 该表有一列告诉我库存中每种商品的数量 我想做的是这样的 SELECT stock name IF stock quantity lt
  • 动态/条件 SQL 连接?

    我在 MSSQL 表 TableB 中有数据 其中 dbo tableB myColumn 在特定日期后更改格式 我正在做一个简单的连接到该表 Select dbo tableB theColumnINeed from dbo tableA
  • 动态SQL生成列名?

    我有一个查询 我正在尝试将行值转换为列名称 目前我正在使用SUM Case As ColumnName 声明 像这样 SELECT SKU1 SUM Case When Sku2 157 Then Quantity Else 0 End A
  • VBA仅清除数据透视表缓存,但保留数据透视表结构

    如何使用VBA清除数据透视表缓存 但不破坏数据透视表结构 我的数据透视表已连接到外部数据源 SQL 源决定哪个用户应该查看数据的哪一部分 当表刷新时 源会填充该表 我想保存 Excel 文件并使用干净的数据透视表 内部没有数据 分发它 结果
  • TSQL 定义临时表(或表变量)而不定义架构?

    有没有一种方法可以定义临时表而无需预先定义其架构 实际上 使用表 VARIABLE 内存表 是最佳方法 table 在临时数据库中创建一个表 而 table 是全局的 两者都具有磁盘命中 考虑交易数量所经历的放缓 打击 CREATE PRO
  • 如何将存储过程中的值返回到 EF

    我试图通过 EF 调用存储过程并从存储过程中检索返回值 我用过this https stackoverflow com questions 6861737 executesqlcommand with output parameter an
  • 如何使用 RODBC 将数据帧保存到数据库生成的主键表

    我想使用 R 脚本将数据框输入到数据库中的现有表中 并且希望数据库中的表具有顺序主键 我的问题是 RODBC 似乎不允许主键约束 这是创建我想要的表的 SQL CREATE TABLE dbo results ID INT IDENTITY
  • 在 SQL Server 数据库之间传递用户定义的表类型

    我在 SQL Server 的一个数据库中有一个用户定义的表类型 我们称之为DB1 我的类型的定义非常简单 仅包含 2 列 创建我的类型的脚本如下 CREATE TYPE dbo CustomList AS TABLE ID int Dis
  • 确定一个范围是否完全被一组范​​围覆盖

    如何检查范围是否为完全覆盖由一组范围 在以下示例中 WITH ranges id a b AS SELECT 1 0 40 UNION SELECT 2 40 60 UNION SELECT 3 80 100 UNION SELECT 4
  • T-SQL 按最旧日期和唯一类别选择行

    我正在使用 Microsoft SQL 我有一个表 其中包含按两个不同类别存储的信息和一个日期 例如 ID Cat1 Cat2 Date Time Data 1 1 A 11 00 456 2 1 B 11 01 789 3 1 A 11
  • SQL Server 到 er 模型

    是否有程序可以将 SQL Server 数据库图表转换为 er 模型 或者从 SQL Server 服务器创建数据库的 er 模型 在 SQL Server 中 Management Studio 中的每个数据库都有 数据库图 功能 您可以
  • 如何识别 SQL Azure 中的死锁?

    我有一个由两个实例组成的 Windows Azure 角色 有时交易会失败并显示SqlException与以下文字 事务 进程 ID N 在锁资源上与另一个进程发生死锁 并被选为死锁牺牲品 重新运行事务 现在我已经谷歌搜索了一段时间并阅读这
  • TSQL如何在xml列中选择具有技能的员工

    在如下所示的表架构中 CREATE TABLE dbo Employee EmployeeId uniqueidentifier NOT NULL Name nvarchar 50 NOT NULL Location nvarchar 50
  • 对带有空白 NVARCHAR 或 NULL 检查的 VARCHAR 索引进行 Count(*) 会导致返回的行数加倍

    我有一张桌子 上面有VARCHAR列及其上的索引 每当一个SELECT COUNT 是在这张表上完成的 该表检查了COLUMN N OR COLUMN IS NULL它返回双倍的行数 SELECT 与相同的where子句将返回正确的记录数

随机推荐

  • 仅显示 shell_exec('df') 中磁盘使用数据的特定列

    我正在尝试编写一个 PHP 脚本来执行用于报告的 shell 函数 我从磁盘使用报告开始 我想要以下格式 drive path total size free space 没有其他的 我的脚本是 output shell exec df h
  • 我可以在 TCPDF 中使用“旧式”(非衬里)数字吗?

    Unicode 不区分衬里数字 与大写字母具有相同的比例 在表格中很有用 但在运行文本中很突出 和非衬里数字 它们看起来更像小写字母 具有上升部分和下降部分 因为它认为它们是彼此的变体 不过 许多字体都具有两组数字 并提供了一种在它们之间进
  • Mozilla firefox 无法使用 window.onbeforeunload

    我在用着window onbeforeunload在窗口关闭时向用户显示消息 该功能在 Chrome 和 IE 上运行良好 但在 Firefox 上不起作用 我使用的是 Firefox 版本26 0我已经尝试了很多 但没有任何意义 有人说这
  • 如何通过解耦的后端和前端进行社交身份验证(Passport / Express / React)

    我正在尝试使用 PassportJS Express 后端和 React JS 前端来进行社交身份验证 但是 我不确定如何去做 我做了一些阅读并实现了社交身份验证 当使用 Google Auth 登录时 它会返回由 Express 应用程序
  • 是否建议在 bash 脚本中捕获 SIGPIPE?

    我在使用系统调用命令从 C 执行 bash 脚本时遇到问题 该脚本捕获了一个SIGPIPE发出信号并退出并返回代码141 这个问题只在我的代码的最后一个版本中开始出现 我的问题如下 为什么这个 SIGPIPE 现在出现而以前没有出现 忽略
  • 带脚本的文本编辑器...适用于 Linux

    一段时间以来 我一直在我的 Windows 机器上使用 UltraEdit 事实证明 使用熟悉的语言 JavaScript 编写脚本的能力非常有用 唯一的问题是我无法在工作时在我的 Linux 机器上使用它 是否有在 Linux 上运行并具
  • 如何“解码”UTF-8 字符?

    假设我想编写一个函数来比较两个 Unicode 字符 我该怎么做呢 我读了一些文章 比如this http en wikipedia org wiki UTF 8 但还是没明白 让我们来 作为输入 已经在范围内了0x0800 and 0xF
  • WIA服务2、在windows xp/7上下载并安装

    我编写了一个从扫描仪扫描图像的应用程序 这在我的开发机器 win7 Ultimate sp1 64位 上运行良好 我尝试在 Windows XP 计算机 或 Windows Server 2008 标准 上运行该应用程序 但失败并出现此错误
  • Android IllegalArgumentException:如果应用程序在后台运行一段时间,则状态类错误

    如果我设置应用程序背景 我认为这是由于内存不足造成的 日志如下 java lang RuntimeException Unable to start activity ComponentInfo com qingdaonews bus co
  • 标头包含深度限制[重复]

    这个问题在这里已经有答案了 我想知道 包含头文件时 包含文件的深度可以无限增加吗 你能在编译时指定一个限制吗 Example main c include A h const int xyz CONST VALUE A h include
  • MapView 没有从 ViewPager 中删除?

    在我的应用程序中 我试图在 ViewPager 内实现地图视图 我的应用程序中有 4 个不同的页面 MapView在第四页 我确实成功加载了地图 但是当我滑回第一页时 必须使用 destroyItem 方法销毁第四个视图 如果我刷到第四页
  • 如何在云监控/stackdriver中按状态显示总dataproc作业?

    Dataproc 作业中应该有成功 失败 待处理状态 当然我可以在 Cloud Console 上 Dataproc 下的作业部分中看到该状态 但是 如何在云监控 stackdriver 中可视化所有这些状态 已经尝试过记分卡图表并使用指标
  • 是否可以从包含操作系统的 .img 文件创建 docker 映像

    是否可以转换 img包含操作系统 Arch Linux 的文件到 Docker 镜像中 更准确地说我想要码头化RuneAudio Raspberry Pi 图像 从完整的操作系统映像生成 Docker 映像通常是一个次优的过程 操作系统映像
  • HTML 注释行为

    所以 我在 Magento WYSIWYG 编辑器 所有东西 中闲逛时注意到呈现为在生成的 HTML 中 似乎也将任何字符串括在呈现正常的评论 我只在 Chrome 中测试过这一点 但这种行为对我来说似乎有点奇怪 我看过W3C 规范评论 h
  • 文本词云绘制错误

    我有以下用于绘制词云的代码 并且收到后续错误 wordcloud dm word dm freq scale c 8 2 min freq 2 max words Inf random order FALSE rot per 15 colo
  • 在 Windows 上为 python 2.7 安装 gstreamer 1.0。

    我一直在尝试在 Windows 上安装 gstreamer 1 0 以用作 python 2 7 模块 我从这里安装了sdkhttp docs gstreamer com display GstSDK Installing on Windo
  • Tensorflow 错误“形状 Tensorshape() 必须具有等级 1”

    import tensorflow as tf import numpy as np import os from PIL import Image cur dir os getcwd def modify image image resi
  • 如何在 C# 中打印 PCL 文件?

    我有一个使用 打印到文件 生成的 PCL 文件 在 C 中以编程方式打印此文件的最佳方法是什么 当然 考虑到我要打印的打印机支持 PCL 我知道我可以通过从提示中调用来进行打印 copy filename pcl location prin
  • iOS App Store 提交:缺少图标 (Cordova)

    我正在制作 Cordova PhoneGap 应用程序并将其提交到 App Store 但是 我收到了一封电子邮件 其中包含以下消息 Invalid Icon Path No icon found at the path reference
  • SQL Server存储过程参数输出

    我有一个存储过程 为了这个问题的目的 我已经大大缩小了它的规模 但本质上我需要帮助的问题是这个 如果表中的一行xyz已更新 我需要将 ID 相互附加并输出回调用应用程序 更新按预期工作 问题在于我构建输出的方式 IPV ID Found 请