sql – 在多列上检查CONSTRAINT
发布时间:2020-12-12 16:29:14 所属栏目:MsSql教程 来源:网络整理
导读:我使用SQL Server 2008 我在同一个表中的多个列上使用CHECK CONSTRAINT来尝试验证数据输入. 我收到一个错误: Column CHECK constraint for column ‘AAAA’ references another column, table ‘XXXX’. CHECK CONSTRAINT不这样工作. 在没有使用FK的情况下在
我使用SQL Server 2008
我在同一个表中的多个列上使用CHECK CONSTRAINT来尝试验证数据输入. 我收到一个错误:
CHECK CONSTRAINT不这样工作. 在没有使用FK的情况下在单个表上实现这一点的任何其他方法? 谢谢 这里是我的代码示例 CREATE TABLE dbo.Test ( EffectiveStartDate dateTime2(2) NOT NULL,EffectiveEndDate dateTime2(2) NOT NULL CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate),); 解决方法是的,在表级别定义检查约束CREATE TABLE foo ( bar int NOT NULL,fred varchar(50) NOT NULL,CONSTRAINT CK_foo_stuff CHECK (bar = 1 AND fred ='fish') ) 您将内部声明为列约束 ... fred varchar(50) NOT NULL CONSTRAINT CK_foo_fred CHECK (...) ... 编辑,更容易发布比描述.修正你的逗号 CREATE TABLE dbo.Test ( EffectiveStartDate dateTime2(2) NOT NULL,EffectiveEndDate dateTime2(2) NOT NULL,--need comma CONSTRAINT CK_CmsSponsoredContents_EffectiveEndDate CHECK (EffectiveEndDate > EffectiveStartDate) --no comma ); 当然,问题仍然是你使用一个CHECK约束,它应该是一个FK约束? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |