Abb*_*bas 2 sql ssms sql-server-2008-r2
我有一个相当愚蠢的问题.我将简化这种情况:我在SQL Server 2008 R2中有一个表,其中有一个字段'ID'(int,PK)和一个Name(nvarchar(50))和Description(text)字段.名称 - 字段中的值应为唯一.搜索表格时,将使用名称 - 字段,因此性能是关键.
我一直在互联网上寻找2小时,以完全理解唯一键,主键,唯一索引等之间的差异,但它并没有帮助我解决我应该使用什么键/约束/索引的问题.
我正在改变SQL Server Management Studio中的表.我改变名字字段的问题是:我应该使用"Type = Index"和"Is Unique = Yes"还是使用"Type = Unique Key"?
提前致谢!
亲切的问候,阿巴斯
唯一键和主键都是逻辑约束.它们都由唯一索引支持.参与主键的列不允许使用NULL.
从创建外键的角度来看,唯一索引是重要的,因此所有三个选项都可以工作.
基于约束的索引具有存储的常规索引不存在的额外元数据(例如,create_date在sys.objects)中.创建基于非约束的唯一索引可以允许更大的灵活性,例如它允许您在索引定义中定义包含的列(我认为可能还有一些其他的东西).