sql2005约束在线等

guangcanzhou 2012-03-21 09:42:26
表中有A,B,C三列,如何建立下列约束:

当A列不为null时,C列也不能为null?

求大家帮忙!!谢谢!
...全文
39 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
昵称被占用了 2012-03-21
  • 打赏
  • 举报
回复
CREATE TABLE TESTA
(
A INT,
B INT,
C INT,
CHECK (NOT (A IS NOT NULL AND C IS NULL))
)
GO
INSERT TESTA VALUES(NULL,1,1)
GO
INSERT TESTA VALUES(1,1,NULL)
出错:
消息 547,级别 16,状态 0,第 1 行
INSERT 语句与 CHECK 约束"CK__TESTA__7193879D"冲突。该冲突发生于数据库"NIDC",表"dbo.TESTA"。
语句已终止。
GO

DROP TABLE TESTA
GO
  • 打赏
  • 举报
回复
[Quote=引用楼主 guangcanzhou 的回复:]
表中有A,B,C三列,如何建立下列约束:

当A列不为null时,C列也不能为null?

求大家帮忙!!谢谢!
[/Quote]

错了,没注意是A不为空时B也不为空

检查约束check(not (A is not null and C is not null))
  • 打赏
  • 举报
回复
create table tablename(
A 类型 not null,
B 类型,
C 类型 not null
)
昵称被占用了 2012-03-21
  • 打赏
  • 举报
回复
CHECK (NOT (A IS NOT NULL AND C IS NULL))

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧