Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:检查列有其他列的成员,但没有其他列的成员_Sql_Sql Server - Fatal编程技术网

SQL Server:检查列有其他列的成员,但没有其他列的成员

SQL Server:检查列有其他列的成员,但没有其他列的成员,sql,sql-server,Sql,Sql Server,主题/标题不是那么直观,我只需要举个例子 假设我们有一个名为ARTICLE的表,如下所示: ARTICLE (idArticle, IdConference, IdMagazine, DateSent, Title, Sector); 问题:插入一个约束,使idArticle只有一个IdConference或只有一个IdMagazine——但决不能两者都有 我马上就知道会是这样: Alter table Article add constraint checkidArt check( ) 但

主题/标题不是那么直观,我只需要举个例子

假设我们有一个名为
ARTICLE
的表,如下所示:

ARTICLE (idArticle, IdConference, IdMagazine, DateSent, Title, Sector);
问题:插入一个约束,使
idArticle
只有一个
IdConference
或只有一个
IdMagazine
——但决不能两者都有

我马上就知道会是这样:

Alter table Article
add constraint checkidArt check( )

但是我不知道如何指定列
IdArticle
应该只有
IdConference
或者只有
IdMagazine
值。

如果您使用的是
MySQL
,那么就不可能添加约束,因为MySQL不支持
CHECK
约束。文件:

CHECK子句已解析,但被所有存储引擎忽略


因此,您唯一的选择是使用带有
信号SQLSTATE
消息文本的
触发器来标记错误。

如果您使用的是
MySQL
,那么就不可能添加约束,因为MySQL不支持
CHECK
约束。文件:

CHECK子句已解析,但被所有存储引擎忽略


因此,您唯一的选择是使用带有
信号SQLSTATE
消息文本的
触发器来标记错误。

假设它是SQL Server,因为MySQL没有检查约束:

ALTER TABLE Article
ADD CONSTRAINT checkidArt CHECK (IdConference IS NULL OR IdMagazine IS NULL)

假设是SQL Server,因为MySQL没有检查约束:

ALTER TABLE Article
ADD CONSTRAINT checkidArt CHECK (IdConference IS NULL OR IdMagazine IS NULL)

mysql或(MS)SQL Server?不要标记未涉及的产品。mysql或(MS)SQL Server?不要标记未涉及的产品。我正在使用sqlserver..microsoft SQL Server..Sorry在哪种情况下@Nenad的答案将帮助您。我正在使用sqlserver..microsoft SQL Server..Sorry在哪种情况下@Nenad的答案将帮助您…非常简单,当然,在看到解决方案之后…啊哈…太简单了,当然,在看到解决方案之后…啊哈