SQL Server:仅当同一表中的另一列是特定值时,才如何强制在一列中使用NOT NULL?

加里·道尔

我对SQL非常陌生,因此在此方面的任何帮助将不胜感激。

我有下表:

在此处输入图片说明

我需要在BusinessName上强制使用NOT NULL BusinessType,但前提是CustomerType = 'Business'我已经在该CustomerType上添加了约束,以便仅BusinessPersonal将被接受。

如果用户要设置个人帐户,则BusinessNameandBusinessType中将接受NULL

阿列克谢·什马科夫(Alexcei Shmakov)

像这样向现有表添加约束

ALTER TABLE Customers ADD CONSTRAINT Con_First check
(
      CustomerType = 'Business' AND BusinessName IS NOT NULL AND BusinessType IS NOT NULL
      OR CustomerType <> 'Business'  -- BusinessName and BusinessType can be null or not null, we omit AND here
)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用SQL Server中的两个条目(值)在同一表中使用另一列更新一列

将同一表中的一列中的值更新为SQL Server中的另一列

在另一列的同一表中具有相同值的SQL组项目

SQL:仅当在同一行中另一列具有不同的值时,才返回一列的值

仅当另一列具有特定值时才恢复表上的更新更改的 SQL 触发器

仅当另一列的值更改SQL Server时才自动增加该值

sql:从另一列中仅选择max,min,mid,其余为null

如果十分之三的列在SQL Server中未返回null,则应在另一列中返回特定值

基于同一表中另一列的值更新(重命名)列的值-T-SQL

在仅更新SQL Server 2008中同一表中的特定列之后,更新触发器中的一列

SQL将数据从一列追加到同一表中的另一列

如何在SQL Server中将多列合并为同一表的一列?

用于引用同一表中另一列的 SQL 查询

SQL使用多个查询从同一表中获取多个值(来自同一列)

SQL-如何在链接到另一表中的值的一列中正确设置多个值?

SQL Access,仅当另一列中的所有值都在指定范围内时,才求和一列的值

sql从同一表和同一列中的值获取到一行

如何使用SQL Server解析表中一列中的数据并将结果放入另一列中?

SQL添加计数列基于同一表并按另一列分组

SQL SERVER:我想在删除第一列之前将我的数据传输到同一表的另一列

如何使用 SQL Server 中另一列的数据更新一列?

SQL 查询将两列与另一表中的一列进行比较(并获得两个值)

使用同一张表中的一列数据比较一列SQL

SQL:如何根据SQL中另一列中的值范围对一列求和?

从同一表中的另一个DateTime列仅更新SQL Server DateTime列中的时间

SQL:仅当满足条件时,才使用同一表中的值更新字段

SQL - 如果子查询中的一列返回 NULL,如何删除整行

当数据具有NULL值时,如何在SQL Server中使用数据透视表将多行转换为多列的一行

SQL分组依据,如果不为null,则选择一列