更新时触发(不包括某些字段更改)

2024-04-04

我这样定义了我的触发器:

CREATE TRIGGER [dbo].[trtablename]
    ON [dbo].[tablename]
    AFTER UPDATE
    AS update tablename set row_version = row_version + 1 
       where id in (select id from inserted)

有一个领域叫Row_Status。应该修改而不增加row_version场地。如何在触发器中设置这样的条件?


您需要根据条件添加条件UPDATE() http://msdn.microsoft.com/en-us/library/ms187326.aspx可以在触发器中调用的函数。

就像是:

CREATE TRIGGER [dbo].[trtablename] ON [dbo].[tablename]
AFTER UPDATE
AS

If not update(Row_Status)
begin

  update tablename set row_version = row_version + 1 
  where id in (select id from inserted)

end

取决于您的表/列以及可能的情况UPDATE可能发生的操作可能需要增加检查的复杂性,但希望这能为您指明正确的方向。

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

更新时触发(不包括某些字段更改) 的相关文章

  • SQL 删除表并重新创建并保留数据

    在我们最初的设计中 我们搞砸了表中的外键约束 现在表已充满数据 我们无法在不删除表中所有记录的情况下更改它 我能想到的唯一解决方案是创建一个备份表并将所有记录放在那里 然后删除所有记录 更改表并开始将它们添加回来 还有其他 更好 的想法吗
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • 列中差异的数量

    我想检索一列每行中有多少个字母的差异 例如 如果您有一个值 test 而另一行有一个值 testing 则 test 和 testing 之间的差异为 4 个字母 该列的数据值为 4 I have reflected about it an
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 选择具有 SQL Server XML 列类型的特定行

    我正在尝试从类似于以下定义的表中选择数据 Column Data Type Id Int DataType Int LoggedData XML 但我只想选择具有特定 DataType 值并且在 LoggedData 列中包含字符串 或评估
  • 单独的逗号分隔值并存储在sql server的表中

    我有一个存储过程 它将逗号分隔的值作为输入 我需要将其分开并需要将其作为单独的行存储在表中 令 SP 的输入为 Rule ID ListType ID Values 1 2 319 400 521 8465 2013 我需要将它存储在一个名
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • XML 解析:格式良好的检查:未声明的实体

    我正在使用 SSMS 2008 但收到以下错误 你知道这意味着什么吗 Msg 9448 Level 16 State 1 Line 4 XML parsing line 1 character 89 well formed check un
  • 计算运行总计时出错(之前期间的累计)

    我有一张桌子 我们称之为My Table有一个Created日期时间列 在 SQL Server 中 我试图提取一个报告 该报告显示历史上有多少行My Table按月在特定时间 现在我知道我可以显示有多少added每个月 SELECT YE
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • 执行带有 EXCEPTION 的 PostgreSQL 查询会导致两条不同的错误消息

    我有一个 PostgreSQL 查询 其中包含事务和列重复时的异常 BEGIN ALTER TABLE public cars ADD COLUMN top speed text EXCEPTION WHEN duplicate colum
  • C#的数组列表可以用来填充SSIS对象变量吗?

    我已在 C 脚本中填充了一个列表 并将其值分配给 SSIS 对象变量 然后 我使用该对象变量通过循环遍历 For every do 枚举器来执行一些 SQL 查询 我尝试通过 Foreach ado 枚举器执行此操作 但出现错误 X 变量不
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • 如何跨多个表强制执行 CHECK 约束

    我有一个在 Microsoft SQL Server 2012 Express 中记录奶牛繁殖信息的数据库 显然 一头牛只有在出生后才能配种 并且在其一生中可能会配种多次 我需要在我的数据库中强制执行这些约束 我目前已经根据下图安排了一个架
  • MS ACCESS 计数/求和行数,不重复

    我有下表 我需要计算总行数而不包括任何重复记录 CustomerID test1 test1 test2 test3 test4 test4 如您所见 总行数为 6 但有两个 test1 和两个 test4 我希望查询返回 4 IOW 我想
  • 在 SQL Server 中,如果主键是 GUID,如何按插入顺序对表行进行排序?

    我开始在主键中使用 GUID 而不是自动增量整数 然而 在开发过程中 我习惯于查询 从 SQL Management Studio 或 Visual Studio 数据库 以查看我的应用程序刚刚插入的记录 并且我对无法按主键 desc 顺序

随机推荐