c# - 缺少表定义的 SQL 条件

标签 c# asp.net sql sql-server

我想知道当这些字段 doctorId、dateApt、hourApt 具有相同的日期和小时以及 doctorId 时,我的表定义中不允许创建新行的条件是什么。

ex:  aptId  ClientId  doctorId  dateApt     TimeApt  IsAvaiable
     1      Null      1         2014/01/29  09:00    True
     2      Null      1         2014/01/29  09:00    True    <== not allowing this
     3      Null      1         2014/01/29  10:00    True    <== ok bc not same hour and date
     4      Null      2         2014/01/29  09:00    True    <== ok not same doctorId

这是表定义。

CREATE TABLE [dbo].[Appointement] (
    [aptId]       INT      IDENTITY (1, 1) NOT NULL,
    [clientId]    INT      NULL,
    [doctorId]    INT      NOT NULL,
    [dateApt]     DATE     NOT NULL,
    [hourApt]     TIME (7) NOT NULL,
    [IsAvailable] BIT      NULL,
    PRIMARY KEY CLUSTERED ([rdvId] ASC),
    CONSTRAINT [fk_doctorID] FOREIGN KEY ([doctorId]) REFERENCES [dbo].[Doctor] ([Id]),
    CONSTRAINT [fk_clientID] FOREIGN KEY ([clientId]) REFERENCES [dbo].[User] ([Id_user])
);

谢谢

最佳答案

在这些列上添加唯一约束:

ALTER TABLE dbo.Appointement
  ADD CONSTRAINT uAppt UNIQUE (doctorId, dateApt, hourAp)

或者在创建表时添加:

CREATE TABLE [dbo].[Appointement] (
     [aptId]       INT      IDENTITY (1, 1) NOT NULL,
     [clientId]    INT      NULL,
     [doctorId]   INT      NOT NULL,
     [dateApt]   DATE     NOT NULL,
     [hourApt]  TIME (7) NOT NULL,
     [IsAvailable] BIT      NULL,
     PRIMARY KEY CLUSTERED ([rdvId] ASC),
     CONSTRAINT [fk_doctorID] FOREIGN KEY ([doctorId]) REFERENCES [dbo].[Doctor] ([Id]),
     CONSTRAINT [fk_clientID] FOREIGN KEY ([clientId]) REFERENCES [dbo].[User] ([Id_user]),
     CONSTRAINT uAppt UNIQUE (doctorId, dateApt, hourAp)
 );

关于c# - 缺少表定义的 SQL 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21436629/

相关文章:

c# - 在 ServerControl (ASP.NET) 的 <Head .../> 标记内添加 <Script .../> 标记?

c# - 如何从 aspx 页面访问 silverlight 控件的属性和方法?

sql - TypeScript Sequelize : How to join two tables with common

sql - postgresql一对多作为json结果,如何过滤?

c# - 如何以编程方式设置 DataGridView 中的单元格值?

c# - 如何在 C# 中从 SQL Server 数据库中检索数据?

c# - 最后:是否保证在任何情况下都会被调用

c# - 将 base64 字符串转换为图像 C# 时出错

sql - 没有任何列值的 Postgres 插入。全部默认

c# - 在 C++ 中扩展 C# 类