sql-server-2008 - 在 SQL Server 2008 中设置条件必填字段

标签 sql-server-2008 ddl dml

我需要对字段提出条件要求。我不确定这在 SQL 中的外观。我将 Management Studio 与 SQL Server 2008 一起使用。本质上,我希望仅当另一个字段输入数据时才需要一个字段。我研究了触发器,我认为这就是我需要的,但我不确定是什么类型( DDLDML 等)。

例如:

当用户输入时间时,他们还必须输入日期,但如果没有输入时间,则不需要日期。 SQL 将发送一个错误,并且不允许用户在填写时间字段时在不输入日期的情况下完成记录。

谢谢!

最佳答案

您可以使用检查约束。

create table YourTable
(
  ID int identity primary key,
  DateCol date,
  TimeCol time,
  constraint ch_DateTime check(
                              DateCol is not null or 
                              TimeCol is null
                              )
)

用这个测试:
-- null in both columns
insert into YourTable default values

-- values in both columns
insert into YourTable(DateCol, TimeCol) values(getdate(), getdate())

-- value only in DateCol
insert into YourTable(DateCol) values(getdate())

-- value only in TimeCol failes
insert into YourTable(TimeCol) values(GetDate())

关于sql-server-2008 - 在 SQL Server 2008 中设置条件必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11893862/

相关文章:

sql-server-2008 - SQL Server 中的特定分组依据查询

sql-server - SQL Server 条件外键约束

mysql - 如何在表中添加新列作为主键?

google-bigquery - BigQuery : billing and quotas

sql - 查询以查看针对相同 ProductId 的 ProductName 计数

c# - 获取错误 SqlException 未被用户代码处理

sql - 无法在预建表上重新创建物化 View

sql - Oracle - Oracle 如何管理特定于事务的 DML 语句

sql - EXISTS 与 JOIN 以及 EXISTS 子句的使用