什么是UNIQUE约束 在数据库中,一张表有两个主键时,就不能建立关系呢

什么是UNIQUE约束 在数据库中,一张表有两个主键时,就不能建立关系呢,第1张

可以使用 UNIQUE 约束确保在非主键列中不输入重复的值.尽管 UNIQUE 约束和 PRIMARY KEY 约束都强制唯一性,但想要强制一列或多列组合(不是主键)的唯一性时应使用 UNIQUE 约束而不是 PRIMARY KEY 约束.

可以对一个表定义多个 UNIQUE 约束,但只能定义一个 PRIMARY KEY 约束.

而且,UNIQUE 约束允许 NULL 值,这一点与 PRIMARY KEY 约束不同.不过,当与参与 UNIQUE 约束的任何值一起使用时,每列只允许一个空值.

FOREIGN KEY 约束可以引用 UNIQUE 约束.

1、连接到数据库,在“数据库”节点下面找到“DWDiagnostics”,点击展开,找到“数据库关系图”

2、右键点击“新建数据库关系图”

3、进入数据库关系图的设计界面

扩展资料:

1、对于任何数据库,都可以创建任意多个数据库关系图。

2、每个数据库表都可以出现在任意数量的关系图中。

3、这样,便可以创建不同的关系图是数据库的不同部分可视化,或强调设计的不同方面。

例如,可以创建一个大型关系图来显示所有表和列,并且可以创建一个较小的关系图来显示所有表但不显示列。

参考资料来源:百度百科——数据关系图

在新建数据库或附加数据库后,想添加关系表,结果出现下面的错误:

此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或ALTER

AUTHORIZATION语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。

按照第一种方式更改怎么也不行,并且文件的所有者也是sa。网友给出了一种方法,运行以下命令:

ALTER AUTHORIZATION ON database::mydbname TO sa

把mydbname修改为实际的数据库名称,就可以把所有者设置为sa了。

还有另外一种解决方法:

1、设置兼容级别为90(2005为90)(2000为80)

USE [master]

GO

EXEC dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90

GO

或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定。

这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,

是否创建",选择“是”即可。

2、通过以上的方法 *** 作,如果问题依然存在的话,按下列方法继续

选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后

use [你的数据库名]

EXEC sp_changedbowner 'sa'

执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",

选择“是”即可。

拣尽寒枝不肯栖,寂寞沙洲。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9899093.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存