检查@@rowcount函数来确定行是否存在可以吗?

2024-04-08

我正在浏览我们的代码库并看到很多这样的测试:

declare @row_id int = ...
declare @row_attribute string

select
  @row_attribute = ROW_ATTRIBUTE
from
  SOME_TABLE
where
  ROW_ID = @row_id

if @row_attribute is null
begin
  ... handle not existing condition
end

这里的问题是,替换中的条件可以/不可以if声明至:

if @@rowcount = 0
begin
  ... handle not existing condition
end

我知道关于exist函数,但这里的目标是获取行的一些属性并同时检查其是否存在。


Yes.

除非如果WHERE子句不在 PK(或唯一索引)上,可能会返回多行,但这可能是一个错误。在这种情况下,变量会被重复重新分配,其最终值将取决于计划。

DECLARE @row_attribute INT

select
  @row_attribute = object_id
from
  sys.objects /*<--No WHERE clause. Undefined what the 
                   final value of @row_attribute will be.
                   depends on plan chosen  */


SELECT @row_attribute, @@ROWCOUNT  

Edit.刚刚注意到您建议的测试是if @@rowcount = 0 not if @@rowcount <> 1所以上面的内容不会影响它,整个答案可以浓缩为“是”这个词!

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

检查@@rowcount函数来确定行是否存在可以吗? 的相关文章

  • 无法将数据加载到 mvc 4 中的 jTable 中

    好的 我第一次尝试 jTable 我可以加载表 但这对我没有什么好处 因为它不会加载我的任何数据 当我调试程序时 我想要的表中的所有行都存储在我的列表中 因此我很困惑为什么当我运行应用程序时会弹出一个对话框 显示 与服务器通信时发生错误 H
  • 从表中选择行,其中另一个表中具有相同 id 的行在另一列中具有特定值

    在 MySQL 中 如果我们有两个表 comments key value 1 foo 2 bar 3 foobar 4 barfoo and meta comment key value 1 1 2 1 3 2 4 1 我想得到来自以下人
  • hive - 在值范围之间将一行拆分为多行

    我在下面有一张表 想按从开始列到结束列的范围拆分行 即 id 和 value 应该对开始和结束之间的每个值重复 包括两者 id value start end 1 5 1 4 2 8 5 9 所需输出 id value current
  • 跳过行:将数据从 SSIS 导出到 Excel 文件

    我正在尝试使用 SSIS 将数据从 SQL Server 数据库导出到 Excel 文件中 我希望从第 6 行插入数据 第 5 行有标题 我可以映射标题名称Excel 目标编辑器 通过编写 SQL 命令到 SQL 表头 SELECT FRO
  • Oracle SQL PLS-00049:错误的绑定变量

    我收到此错误 这似乎是列拼写问题 然而 我 99 确信我拼写的所有内容都是正确的 但我看不出有任何理由会出现我所犯的错误 这是来源 CREATE OR REPLACE TRIGGER update qoh trigger AFTER INS
  • 重用 t-sql 游标的起始位置?

    我正在开发一个在临时表上使用游标的存储过程 我已经阅读了一些关于为什么不需要游标的内容 但在这种情况下我相信我仍然需要使用游标 在我的过程中 我需要遍历表的行两次 声明游标后 已经单步执行临时表并关闭游标 重新打开时游标的位置是否仍保留在表
  • 使用函数的 SQL 查询 - 如何获取列表的最大计数

    如何查询 MAXIMUM COUNT 交易次数 我的代码如下 SELECT customer id COUNT customer id FROM rental GROUP BY customer id HAVING MAX COUNT cu
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是
  • 替换字符串中的多个字符,而不使用任何嵌套替换函数

    我的表中存储了一个方程 我一次获取一个方程 并希望将所有运算符替换为任何其他字符 输入字符串 N 100 6858 6858 N 100 0 2 N 35 运算符或模式 替换字符 输出字符串 N 100 6858 6858 N 100 0
  • 如何在Word 2010中从SQL数据库检索数据?

    我想用 MS SQL 数据库中的数据填充 Word 文档 这可能吗 如果可能的话 如何实现 我过去曾通过多种方式做到这一点 这取决于用户是从 Microsoft Word 外部还是从 Microsoft Word 内部启动操作 From I
  • SQLite SQL 查询出现问题[重复]

    这个问题在这里已经有答案了 我正在尝试在 SQLite 3 中运行以下查询 SELECT DISTANCE latitude longitude AS distance FROM country WHERE id NOT LIKE HAVI
  • 就SQL注入而言,哪种sql查询更安全

    我有两个 SQL 查询正在尝试更新sup and opp每次调用查询时 值分别为 1 和 1 第一个查询 query update disc set sup sup opp opp where did did int sup getnoof
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • 仅选择 Varchar 列中的数字[重复]

    这个问题在这里已经有答案了 在 SQL Server 2008 R2 中 我在 varchar 12 列中有一些数据 它看起来像这样 Data 1234 1765 34566 123 SDRMH HJG434 我想从所有包含 的行中删除 并
  • 使用 Proc sql 和 Teradata 在 SAS 中编写高效查询

    编辑 这是一组更完整的代码 它准确地显示了下面的答案所发生的情况 libname output data files jeff let DateStart 01Jan2013 d let DateEnd 01Jun2013 d proc s
  • 合并并添加两个表中的值

    是否可以制作一个在两个表中添加值的查询 例如 假设您有两张表 id value a 1 c 2 d 3 f 4 g 5 and id value a 1 b 2 c 3 d 4 e 5 然后 当您 添加 两个表时 您将获得 id 匹配的结果
  • 访问数据库 LIMIT 关键字

    我试图让我的页面列表功能在 ASP 中与 Access 数据库一起工作 但我不知道 Microsoft SQL 中 LIMIT 的替代方案 我已经尝试过 TOP 但这似乎不起作用 这是 MySQL 中使用的语句 SELECT FROM cu
  • SQL Server 2008 R2 内连接无法匹配 varchar 字段,因为它包含特殊字符

    我们正在将 Microsoft SQL Server 2008 R2 用于我们的经典 ASP 应用程序之一 我们有两张表 TableA TableB TableA有以下列 InstName varchar 1024 TableB有这些列 I
  • 使用“AND”表达式构建动态 SQL,而不混淆嵌套条件?

    总的来说 我对 php 和编码相当陌生 我有一系列条件需要测试它们是否已设置 它们是 option1 option2 option3 if isset option1 if isset option2 if isset option3 qu
  • Entity Framework 6 多对多想要插入重复行

    不应该这么难 我准备放弃EF了 我的模型有周刊版本 每个版本可以有许多分类广告 每个分类可以出现在一个或多个版本中 我的模型 public class Classifieds Key DatabaseGenerated DatabaseGe

随机推荐

  • Docker 链接容器、Docker 网络、Compose 网络 - 我们现在应该如何“链接”容器

    我有一个现有的应用程序 由在同一主机上运行的 4 个 docker 容器组成 它们已通过以下方式连接在一起link命令 然而 在对docker进行了一些升级之后 link行为已被弃用 并且似乎发生了变化 我们遇到的问题是容器现在失去了彼此的
  • 如何使用带有 ARRAY 关键字的 Postgresql GIN 索引

    我想创建GIN使用标量文本列上的索引ARRAY 表达式如下 CREATE TABLE mytab scalar column TEXT CREATE INDEX idx gin ON mytab USING GIN ARRAY scalar
  • cuda中的count3非常慢

    我在 CUDA 中编写了一个小程序 用于计算 C 数组中有多少个 3 并打印它们 include
  • 解析树和语法信息

    有谁知道在哪里可以找到好的在线资源以及如何制作语法和解析树的示例 最好是介绍材料 信息是 n00b 友好的 我自己在 Google 上没有找到任何好的信息 Edit 我正在考虑理论 而不是特定的解析器软件 网上没有 不过也许你应该看看编译器
  • 如何向 XAML 窗口添加多个资源?

    我现在有一个小问题 我不知道如何解决 我想向一个窗口添加两个资源 一个是 XAML 文件样式资源 另一个是 ValueConverter 类 如果我一次只使用一种资源 它们都会起作用
  • 使用 g-signin 按钮,G+ 登录立即将我注销 3 次

    我在 HEAD 中的代码是
  • 将 python 日志记录与 AWS Lambda 结合使用

    正如 AWS 文档所示 import logging logger logging getLogger logger setLevel logging INFO def my logging handler event context lo
  • 如何导入更高一级的模块?

    For app init py abc py mod init py def py 如何从 def py 导入 abc py 导入当前模块父目录中的模块 abc py import os parentdir os path dirname
  • 鼠标移动时放大图像:到达所有角落

    我正在研究缩放功能 此缩放是一个具有 100 窗口大小的固定框 并且位于具有 200 固定框宽度的图像内部 这个缩放需要像这样工作 当光标位于窗口中央时 图像应位于中央 当光标位于右上角时 图像应停留在窗口的右上角 因此可以通过角到达图像
  • 套接字如何既可以连接又可以关闭?

    我正在使用 Java 套接字客户端 如果服务器仍然连接到我的客户端 但它没有发送对我的消息的响应 我最终会收到读取超时异常 在这种情况下 我想测试一下是否应该重新连接我的套接字 或者只是保留它并重新使用它 我使用这个条件 if socket
  • .htc 文件在旧版 IE 中是否是像 CSS3 那样的圆角的良好做法?

    我正在尝试使用 CSS3 制作带有圆角的简单 html 按钮 但对于 IE 我使用 htc 文件作为圆曲线 使用 htc 文件是好习惯还是坏习惯 我无法判断使用这个 html 文件 我的另一个担心是渐进增强是否允许使用 htc 文件 还请告
  • 用python计算时间序列数据的概率分布

    我有一个关于概率分布函数的问题我有一个时间序列数据 我想计算不同时间窗口内数据的概率分布 我开发了以下代码 但我找不到该函数的概率分布值 a pd DataFrame 0 0 21 660332407421638 20 5642894358
  • 如何在 RHEL 虚拟机上运行 minikube?

    有没有办法在 RHEL VM 虚拟机管理程序 上运行 Kubernetes minikube 或者还有其他方法可以使用单个虚拟机尝试 Kubernetes 吗 要在 RHEL CentOS VM 上运行 minikube 您需要在安装 mi
  • 在 CodeRush 中查找键绑定定义

    如果我部署了社区插件并在 CodeRush 中设置了键绑定 那么我现在如何找到我在选项对话框 树层次结构中归档它的位置 打开 CodeRush 选项屏幕 选择DevExpress 选项从菜单或点击Ctrl Shift Alt O 然后找到I
  • 尝试从私有实例调用模板方法时出现编译器错误[重复]

    这个问题在这里已经有答案了 如果您已经知道答案 这个问题只是另一个问题的重复 请注意我的后续问题 如果存在同名的不相关的全局模板函数 为什么不需要模板关键字 https stackoverflow com questions 2389249
  • 正则表达式失败时非常慢

    我有一个正则表达式 应该验证字符串是否由空格分隔的字符串组成 正则表达式工作得很好 好吧 它最后允许有一个空格 但这不是他的问题 但是当验证失败时需要很长时间 正则表达式如下 w 0 当尝试使用字符串进行验证时 this is SAMPLE
  • Rest 服务抛出异常:最佳处理方法

    我有一个休息服务 它会抛出异常 我想知道处理这个问题的最佳方法是什么 所以我有一个休息服务 它可以抛出用户定义的异常 我在 catch 块内捕获该异常并再次抛出该异常 并使用休息框架来捕捉这一点 对于非用户定义的异常也是如此 我认为这会很好
  • 为什么在 Java 中两个整数相除会返回 0.0? [复制]

    这个问题在这里已经有答案了 int totalOptCount 500 int totalRespCount 1500 float percentage float totalOptCount totalRespCount 为什么它总是返回
  • 如何向 UIAlertController 添加进度条?

    我想在 swift iOS 8 UIAlertController 中添加进度条 这可能吗 有没有办法继承 UIAlertController 并添加进度条并连接一些委托函数 thanks 如果您只需要一个进度条 只需将其添加为子视图 如下
  • 检查@@rowcount函数来确定行是否存在可以吗?

    我正在浏览我们的代码库并看到很多这样的测试 declare row id int declare row attribute string select row attribute ROW ATTRIBUTE from SOME TABLE