在SQL Server Management Studio中(SSMS)2008 R2开发在桌子上(因为我不能要求没有它)约束是关键是索引是约束?
--SET ANSI_NULL_DFLT_ON ON
create table B (Id int)
我创造出独特的约束
ALTER TABLE B
ADD CONSTRAINT IX_B
UNIQUE (ID)
WITH (IGNORE_DUP_KEY = ON)
SSMS表明,我没有任何约束,但有一个键+索引,而上下文选项(右键单击)提示我创建(抱歉,脚本)仍然约束。
主要问题:
什么是这里的关键?
为什么需要这个约束?
为什么通过键调用唯一约束(并通过唯一约束键)?
对不起,为什么按索引调用密钥?他们似乎有相同的名称(虽然我有没有明确的名称创建的,他们会叫不同的)...
对不起,再...
抵押品问题:
哪些功能是“唯一约束”之间的不同与“唯一索引”?今天我搜索了一个不同的时间(想找到10),而且找不到任何东西。
换句话说,什么是(为什么)概念(或构造)“唯一约束”和“唯一索引”在SQL Server中是重复的?
奖金的问题(对于那些谁这个问题似乎太简单了):
什么意义上唯一索引(或唯一约束)允许易受骗的人?
insert into B VALUES (1)
insert into B VALUES (1)
insert into B VALUES (1)
更新:
对不起
谢谢,伙计们和女士(奖金被撤回)
UPDATE2:是不存在(“唯一索引”和以前的SQL Server中的“唯一约束”之间的区别我隐约记得其中一个不允许NULL)?
Update3:真的,我总是生气(困惑)的一个“外键约束”被称为“外键”,而它不是一个键和关键,外国人在另一个表,外国人......只是发现这是普遍的混乱。至少,现在我记住我应该记住au contraire。
UPDATE4:
@Damien_The_Unbeliever,谢谢,
这些,至少,一些hrooks记忆混乱。
虽然有些困惑:
为什么这些候选项默认不是NULL?
起初,我真的想插入更短的脚本:
CREATE TABLE A(A INT UNIQUE);
它生产:
WTF这个 “候选人” 的PRIMARY KEY和具有多重身份综合征,然后呢?
是不是“UQ_”代表命名实践中的唯一约束?
现在,该指数的脚本UQ__A__3214EC262AA05119产生莫名......不......指标约束(?):
ALTER TABLE [dbo].[A] ADD UNIQUE NONCLUSTERED
(
[ID] ASC
)
WITH
( PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
ONLINE = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON)
ON
[PRIMARY]
WTheF - 如何唯一索引被确定为约束?在哪里,按什么
脚本的密钥产生相同!再次,约束...... 为什么没有名字?为什么不可能将脚本编写为“修改”,而仅仅是“创建”?
这没有任何意义!
现在,如果执行制作脚本,有2名受骗者,
执行一次 - 瞧:3重复数据删除“候选人”
注:如果创建由单独的T-唯一约束SQL语句与自定义/手动名称,因为我在顶部,然后脚本不产生匿名DML,并分别,他们的执行不允许乘“候选人”
主键奇怪的候选人,不是他们?需要访问缩小(与多个身份症状)?
RE:最后一句 - 它不允许使用。 'IGNORE_DUP_KEY = ON'意味着不会插入模糊,但不会引发错误。 – 2010-10-20 14:08:12