UPDATE 语句包含在 IF EXISTS 块中

2024-01-05

我正在尝试编写一个更新列的 DML 脚本,但我想确保该列首先存在,因此我将其包装在 IF EXISTS 块中

IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Client' AND COLUMN_NAME='IsClarityEnabled') 
BEGIN
    UPDATE Client SET IsClarityEnabled = 1 WHERE ClientID = 21
END

所以奇怪的是,即使不满足条件,它也会尝试执行更新。因此列不存在并且 UPDATE 语句运行并且我收到错误。为什么?

更奇怪的是,这确实有效:

IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Client' AND COLUMN_NAME='IsClarityEnabled') 
BEGIN
    EXEC('UPDATE Client SET IsClarityEnabled = 1 WHERE ClientID = 21')
END

UPDATE 命令是否有什么特殊之处导致它出现这种行为?


问题是脚本将被编译/解析,如果该列不存在,则会出现编译/解析错误。

列名无效 “清晰度已启用”。

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

UPDATE 语句包含在 IF EXISTS 块中 的相关文章

  • 通过 osql.exe 运行脚本时出现问题

    我尝试以这种格式运行我的软件的更新脚本 osql exe i path to script U 用户 P 密码 S sqlserver 位置 d 数据库名称 n b 大多数脚本的格式相同 并且都以 GO 结尾 其中很多都运行得很好 但随机脚
  • SQL 2008全文索引填充延迟

    我的经理说 在基础表数据更改后 可能需要一段时间才能更新全文搜索索引 例如 如果我有一张桌子Products有一个柱子Description我更新了该描述 然后我可能需要一些时间才能搜索该新描述 真的吗 这需要多长时间 SQL 2008 对
  • 如何将 数组传递给存储过程

    我有一个清单索赔数据在 C 中 它有三个项目 日期 类型和描述 其中可以有多行 如下所示 索赔数据 Date Type Description 01 02 2012 Medical Its a medical 05 02 2013 Thef
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 快速查询最新记录的方法?

    我有一张这样的表 USER PLAN START DATE END DATE 1 A 20110101 NULL 1 B 20100101 20101231 2 A 20100101 20100505 在某种程度上 如果END DATE i
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 弹簧隔离支持吗? SQL快照隔离

    我们正在使用 SQL Server 快照隔离可能是提高性能和解决一些死锁问题的好方法 假设我们确实需要更改为快照隔离 我似乎找不到一种简单的方法来在 Springs 上启用快照隔离 Transactional 我发现以下 hibernate
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 使用子查询 select 创建新表

    我试图从子查询选择创建一个新表 但出现以下错误 附近的语法不正确 SELECT INTO foo FROM SELECT DATEPART MONTH a InvoiceDate as CalMonth DATEPART YEAR a In
  • 是否有适用于 SQL Server Express 的 SQL Server Profiler? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 SQL Server Express 的 SQL Server Profiler 也许是开源的 或者也许只是一个可以帮助我查
  • 解析带下划线的 SQL Server 数字文字

    我想知道它为什么有效以及为什么它不返回错误 SELECT 2015 11 Result 11 2015 第二种情况 SELECT 2 1 a a 2 1 检查元数据 SELECT name system type name FROM sys
  • SQL 连接两个没有关系的表

    我有具有相同结构的不同表 我想通过其中一列将它们连接起来 问题是他们不共享该专栏中的信息 Table 1 Type A Name Value Table 2 Type B Name Value 结果表 在单列中 nameFromA name
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • SQL查询查找表的主键?

    我怎样才能找到哪一列首要的关键使用查询来创建表 这是重复的question https stackoverflow com questions 893874 mysql determine tables primary key dynami
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • Spark SQL 中的 SQL LIKE

    我正在尝试使用 LIKE 条件在 Spark SQL 中实现联接 我正在执行连接的行看起来像这样 称为 修订 Table A 8NXDPVAE Table B 4 8 NXD V 在 SQL Server 上执行联接 A revision
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • SQL Server 数据库架构版本控制和更新

    对于我的应用程序 我必须支持更新方案 并且数据库可能会受到影响 我希望能够从旧版本更新到最新版本 而无需安装中间版本 例如 假设我有版本 A 最旧的版本 B 中间版本 和 C 新版本 我希望能够将版本 A 直接更新到版本 C 对于应用程序文
  • 我是否需要在外键上指定 ON DELETE NO ACTION?

    我有以下与 SQL Server 2012 一起使用的 DDL CREATE TABLE Subject SubjectId INT IDENTITY 1 1 NOT NULL Name NVARCHAR 50 Not NULL CONST
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么

随机推荐

  • Bootstrap Select - 重新初始化动态添加的元素

    我正在使用引导选择 http silviomoreto github io bootstrap select http silviomoreto github io bootstrap select 用于为我的网站的每个部分显示带有 Fon
  • 在 C++ 中定义短函数名别名的最安全方法是什么?

    假设我有一堂课Utility在一个文件中utility h class Utility public static double longDescriptiveName double x return x 42 然后我发现我使用了这个函数l
  • 属性值是否可以跨越多行?

    e g div class big left important some content div 有谁知道这是否会破坏事情 是否有良好的浏览器支持 考虑回车 制表符等空白 http www sul stanford edu tools t
  • 通过来自同一对象实例(或基础)的反射调用私有/受保护的方法

    是否可以通过反射调用受保护的方法 我正在使用这个 Me GetType InvokeMember Stages CurrentStage Reflection BindingFlags InvokeMethod Nothing Me Not
  • 以编程方式获取 Swift 中当前播放曲目的名称和艺术家

    我已经尝试过以下方法 let nowPlaying MPNowPlayingInfoCenter defaultCenter nowPlayingInfo 然而我回来了nil每次我运行它时都会播放一首歌曲 我希望能够获取曲目标题和艺术家并将
  • 在 Web 开发过程中,我将花费多少时间用于用户输入验证?

    我是网络开发新手 到目前为止 我花了很多时间 50 左右 来尝试阻止坏人将 sql 注入之类的东西放入我的输入表单中并在服务器端验证它 这是正常的吗 Jeremy 一些 PHP 细节 当涉及数据库查询时 请始终尝试使用准备好的参数化查询 这
  • 如何进入 CoreDNS pod kubernetes?

    我有一个正在运行的 k8s 集群 其中包含两个 CoreDNS 副本 但是当我尝试输入 POD 的 bash 提示符时 它向我抛出以下错误 kubectl exec it coredns 5644d7b6d9 285bj n kube sy
  • joomla(2.5)系统插件安装时加载语言文件

    在安装系统插件 在 Joomla 2 5 中 期间 我很难显示本地化字符串 xml 文件中本地化字符串的 正常 方式似乎不起作用 请参阅另一个问题 基于语言的安装描述 https stackoverflow com questions 11
  • 如何跨应用程序限制内容提供商数据

    我们如何确保某些应用程序无法访问存储在内容提供商中的我的数据 而某些其他应用程序可以访问该数据 基本上 我需要允许我感兴趣的某些应用程序访问存储在内容提供程序中的数据 但我不希望所有应用程序都能够访问该数据 我怎样才能实现这个目标 Than
  • 获取代码点的所有 Unicode 别名

    The charnames https metacpan org pod charnames杂注提供charnames viacode返回给定代码点的 最佳 名称 例如 perl Mcharnames full E say charname
  • 使用插件系统的 Netbeans 平台应用程序

    我正在编写一个 Netbeans 平台应用程序 我想在该应用程序处于开发状态时将其提供给客户 并且每当特定模块有更新时 我想以客户可以使用 netbeans 插件更新程序来更新模块的方式处理它 因此 我将获得一台服务器来托管不同的模块 签署
  • (iphone)将子视图的框架设置在超级视图的边界之外?

    我注意到我可以将子视图放置在超级视图的边界之外 部分或全部 我想知道这是否可以接受 因为这在通常的 iPhone 视图编程中似乎是不正常的 谢谢 这是可以接受的 有时甚至是常见的做法 例如 滚动视图或其他 复合 视图的自定义实现通常会将对象
  • 在Python中对多维数组进行排序的适当数据结构?

    我有各种字符串 单词 的三个数值 权重 计数 贡献 我想将它们组织成一个多维数组 然后进行排序 为此 我在字典中创建了列表 其中数值位于列表中 字符串是键 print dictionary word weight count contrib
  • 编写自己的异步方法

    我想知道如何以 正确 的方式编写自己的异步方法 我看过很多解释异步 等待模式的帖子 如下所示 http msdn microsoft com en us library hh191443 aspx http msdn microsoft c
  • 什么是域错误

    在 C 中 有一个 域错误 的基类 std domain error 我不明白在什么情况下我应该在代码中抛出域错误 所有其他异常基类都非常不言自明 我很确定 std domain error 本身与互联网域名无关 因此请解释域错误是什么类别
  • 如何用intellij中的空格序列替换文件中的所有制表符?

    给定项目中的一个文件 我希望能够用空格替换文件中的所有制表符 intellij 有什么办法可以做到这一点吗 转到编辑 转换缩进 然后分别选择 到空格 或 到制表符 它在文档中 改变缩进 http www jetbrains com idea
  • Python 是否内置了针对特殊字符和/或标点符号的字符串验证?

    Python 有str isalnum str isdigit str isupper str islower str isalpha 但是它是否有任何内置的字符串验证检查特殊字符或标点符号 即 等 标准string模块提供string p
  • 如何以编程方式获取Linux进程的堆栈起始地址和结束地址?

    对于单线程程序 我想检查给定的虚拟地址是否在进程的堆栈中 我想在用 C 编写的进程中执行此操作 我正在考虑读书 proc self maps找到标记为 stack 的行 以获取进程堆栈的开始和结束地址 思考这个解决方案让我产生了以下问题 p
  • java系统范围的键盘和鼠标状态

    有没有办法在系统范围内侦听鼠标和键盘事件 而不将它们从系统队列中取出 例如 有没有办法设置一个恶魔 比如说 它会监听并报告每个键盘和鼠标事件 使用纯Java 是不可能的 但是您可以使用 JNI Java 本机接口 它适用于用 C 编写并本机
  • UPDATE 语句包含在 IF EXISTS 块中

    我正在尝试编写一个更新列的 DML 脚本 但我想确保该列首先存在 因此我将其包装在 IF EXISTS 块中 IF EXISTS SELECT FROM INFORMATION SCHEMA COLUMNS WHERE TABLE NAME