SQL Server 2008 中唯一的日期范围字段

2023-11-25

我有一个表,其中包含两个名为 StartTime 和 EndTime 的字段。两者都是 TIME 字段。

我想添加一个约束,防止插入与预先存在的时间范围重叠的任何记录。例如。如果已存在 StartTime = 5:00、EndTime = 10:00 的记录,我希望 StartTime = 6:00、EndTime = 9:00 的插入由于重叠而失败。

有没有什么办法可以做到这一点,无论有没有触发器?


下面的触发器应该可以工作 - 也可以通过检查约束来做到这一点,但是显示的逻辑这个帖子有点伤我的头。

CREATE TRIGGER [dbo].[DateRangeTrigger]
   ON  [dbo].[TargetTable]
   FOR INSERT, UPDATE
AS 
BEGIN

IF EXISTS (SELECT t.starttime, t.endtime FROM TargetTable t
        Join inserted i
        On (i.starttime > t.starttime AND i.starttime < t.endtime AND i.UniqueId <> t.UniqueId) 
           OR (i.endtime < t.endtime AND i.endtime > t.starttime AND i.UniqueId <> t.UniqueId)
           OR (i.starttime < t.starttime AND i.endtime > t.endtime AND i.UniqueId <> t.UniqueId)
        )
BEGIN
    RAISERROR ('Inserted date was within invalid range', 16, 1)
    IF (@@TRANCOUNT>0)
        ROLLBACK
END


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

SQL Server 2008 中唯一的日期范围字段 的相关文章

  • 模式更新后 jOOQ 生成的类的运行时验证?

    我用org jooq util DefaultGenerator在构建过程中生成 jOOQ 类来表示我的数据库模式 当应用程序运行时 架构预计会在应用程序不知情的情况下发生更改 此类更改可能与已生成的代码兼容 也可能不兼容 如何在运行时检测
  • TOAD 将 &String 视为绑定变量

    我正在使用 Oracle Data Integrator 开发一些 ETL 有时会使用 TOAD 测试部分代码 今天我遇到了 TOAD 的问题 我有一行像 AND column value like DEV PROD 当我尝试运行包含上面过
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 使用 Spark DataFrame 获取组后所有组的 TopN

    我有一个 Spark SQL DataFrame user1 item1 rating1 user1 item2 rating2 user1 item3 rating3 user2 item1 rating4 如何按用户分组然后返回TopN
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 使用两个日期之间的随机日期时间更新每一行

    我有一个专栏叫date created我希望每一行保存一个随机日期 日期距当前时间为 2 天 我正在运行以下查询 但它会更新具有相同随机日期的所有行 我希望每一行都是随机的并且不相同 update table set date create
  • 如何让 LinqToSql 将“索引提示”传递给 sql server?

    由于我们不能相信我们的客户会更新 sql server 中的索引统计信息等 因此我们过去不得不使用索引提示 http www sql server performance com tips hints general p1 aspx 由于我
  • 复选框上的数据绑定

    我目前正在将数据从 SQL 数据库之一提取到我的应用程序中 我可以让它适用于我的文本框和其他项目 但是 我似乎无法让它适用于复选框 这是我正在使用的代码 DataTable dt new DataTable dt using SqlConn
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • 更改迁移中的自动​​增量值(PostgreSQL 和 SQLite3)

    我有一个托管在 Heroku 上的项目 想要更改表的自动增量起始值 我在本地使用 SQLite3 Heroku 使用 PostgreSQL 这是我在迁移中所拥有的 class CreateMytable lt ActiveRecord Mi
  • Mysql 检索所有有限制的行

    我想检索特定用户的所有行 限制为 0 x 所以我只是想问是否有任何方法可以检索 mysql 中的所有行 而不调用返回 x 的 count id 的方法 而不重载现有函数 该函数在查询中根本没有限制 与我们的 string Relace 功能
  • 如何在 Visual Studio 中更改 Azure 数据库表的列顺序

    我整个下午都在寻找在 MS Visual Studio 2022 中重新排序 Azure 数据库表列的方法 没有运气 在其他应用程序中 可以通过拖动或剪切和粘贴轻松重新排列列 这里无能为力 此时 我什至不确定可以在 VS 中移动列 我只对
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 避免连接失败时出现空指针

    我有我的域类 带有命名查询 class Atendimento implements Serializable Funcionario funcionario static mapping funcionario column FUNCOD
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int

随机推荐

  • 从 Windows 脚本发送邮件

    我想通过 Windows Server 2003 标准版上的脚本发送邮件 我认为服务器设置几乎是开箱即用的 邮件服务器是 Exchange 邮件服务器 当您位于内部网络时 您可以使用普通的旧式 SMTP 我已经在我的机器上使用 Perl 完
  • iPhone核心数据模拟器

    我创建了一个使用核心数据的应用程序 有没有办法在模拟器上查看sqlite db 也许有一个工具可以允许在模拟器上查询 sqlite 数据库 就像数据浏览器一样 有没有办法浏览 iPhone 模拟器到 sqlite 数据库位置 对于 Xcod
  • 无法读取未定义的属性“debugHosts”

    我在尝试将 Realm 与 RN 0 29 一起使用时收到此错误 来自 Chrome 的堆栈跟踪 Cannot read property debugHosts of undefined handleException Exceptions
  • 如何在 Grails 1.3.7 中记录 sql

    我尝试在数据源 测试环境 中使用 logSql true 配置 grails 中的 sql 日志 但测试输出中没有显示任何内容 我读了这篇文章 但它不起作用 如何在 Grails 中记录 SQL 语句 Thanks 我们在 Config g
  • 如何在 PostgresQL 中显示所有无效对象

    寻找视图我可以列出 PostgreSQL 中所有 无效 对象 在 Oracle 中 我们可以使用 dab objects status 列 但我不确定在 PostgreSQL 中是否有一种简单的方法可以做到这一点 也许 我可以用下面的代码检
  • 使用 python 将图像复制到 MacOS 剪贴板

    我想在 Mac OS 上将图像 PIL 图像 复制到剪贴板 我尝试了几十种不同的方法来做到这一点 大多数 python 剪贴板模块 如 pyclip 或 Clipboard 不支持图像 我找到了一个在 Windows 上执行此操作的代码 但
  • 无法解释的 C++ 默认 int 值

    我一直在重构一些代码 我注意到一些涉及未初始化 int 数组的奇怪行为 int arr ARRAY SIZE 我设置了一个断点 似乎所有值都默认为 858993460 这个值有什么特别的吗 有什么想法为什么它们不默认为 0 吗 858993
  • 根据序列中缺失的数字拆分列表

    我正在寻找最Pythonic的方法 根据序列中缺少的数字将数字列表拆分为更小的列表 例如 如果初始列表是 seq1 1 2 3 4 6 7 8 9 10 该函数将产生 1 2 3 4 6 7 8 9 10 or seq2 1 2 4 5 6
  • 如何在 UWP c# 中使用 DataTable 内容填充 DataGrid

    我正在创建一个 UWP 应用程序 并尝试使用包含数据库中数据的 DataTable 填充我的 DataGrid 但没有成功 我已经寻找解决方案 但无法摆脱该错误 XAML 代码
  • 如果 Visual Studio 2010 中属性窗口的描述框被隐藏,如何显示它?

    如果 Visual Studio 2010 中属性窗口的描述框被隐藏 如何显示它 例如 下图显示了描述框 它显示为 加载 每当用户加载表单时发生 我遇到了同样的问题 这是由于描述框长度被拖为零引起的 为了解决这个问题 我必须取消固定属性框并
  • 如何检查是否在 Cygwin、Mac 还是 Linux 中运行?

    我有一个可在 Windows Cygwin 以及 Mac 和 Linux 上使用的 shell 脚本 每个版本需要稍微不同的变量 shell bash 脚本如何检测它是在 Cygwin Mac 还是 Linux 中运行 通常 uname及其
  • 在 Intellij Idea 中找不到符号“var”

    每当我尝试从 Intellij Idea 运行我的应用程序时 我都会收到以下错误 如果我通过 Maven 构建应用程序 它就可以正常工作 看一下我的模块设置 JDK 是 v10 项目和模块的语言也是 v10 知道为什么会发生这种情况吗 我不
  • 如何有效地从字节中读取位?

    我正在开发一个包含 WebSockets 的项目 服务器 Node js 和客户端 Chrome 之间的数据是使用我设置的用于数据交换的自定义 非常简单 格式发送的 我以 3 位为单位发送数据 因为我发送的项目都有 8 种可能性 数据格式如
  • Hibernate - 批量更新从更新返回意外行数:0 实际行数:0 预期:1

    我收到以下休眠错误 我能够识别导致问题的功能 不幸的是 该函数中有多个数据库调用 由于休眠在事务结束时刷新会话 我无法找到导致问题的行 下面提到的休眠错误看起来像是一般错误 它甚至没有提到哪个 Bean 导致了这个问题 有人熟悉这个休眠错误
  • BarSpacing 选项在 Mathematica 中是如何实现的?

    我正在尝试实现一个DateListBarChart函数 获取日期数据并输出与以下位置相同的条形图DateListPlot 如果给定相同的数据 则它们必须在相同的水平位置绘制数据 这样就可以使用组合它们Show 我发现很难获取设置BarSpa
  • 修改twitter bootstrap导航栏

    我一直在尝试修改 Twitter 引导导航栏 目前所有链接都向左对齐 而我真正想要的是让它们居中 在另一篇文章中我读到你使用这个 tabs pills margin 0 auto padding 0 width 100px 但这对我不起作用
  • IRb:如何使用预加载的类启动交互式 ruby​​ 会话

    当我经历采用 Ruby 语言的旅程时 我花了很多时间在 IRb 上 太棒了 但是 由于我不太了解它的功能 并且对 Ruby 仍然是个 傻瓜 所以我想了解以下内容 如何在不重新启动 IRb 的情况下 刷新 会话 或者这是不可能的 如何配置 I
  • 在 C/C++ 源代码中包含 Git 提交哈希和/或分支名称

    我想知道如何将 Git 提交哈希和 或其他信息获取到已编译二进制文件中 C 变量的内容中 而不使其成为 Git 跟踪的源代码的一部分 我需要跟踪在嵌入式处理器上运行的已编译可执行文件中的固件版本信息 在这种封闭环境 即没有文件系统 中 无法
  • 添加登录名并使用 SQL Server 身份验证连接到 SQL

    我想在 SQL Server 2008 中添加一个用户 这样我就可以使用 SQL Server 身份验证而不是 Windows 身份验证来连接到 SQL 并尝试使用以下代码创建一个具有登录名的用户 CREATE login newLog w
  • SQL Server 2008 中唯一的日期范围字段

    我有一个表 其中包含两个名为 StartTime 和 EndTime 的字段 两者都是 TIME 字段 我想添加一个约束 防止插入与预先存在的时间范围重叠的任何记录 例如 如果已存在 StartTime 5 00 EndTime 10 00