不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行,这是因为你在student这张表上建了少数索引,索引名字为cno,因此,不能插入索引字段重复的数据。可以把创建和修改区分保存,少数索引去掉改成普通索引。
一、不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行
不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行,这是因为你在student这张表上建了少数索引,索引名字为cno,因此,不能插入索引字段重复的数据。可以把创建和修改区分保存,少数索引去掉改成普通索引。
少数索引和其它索引本质上并没有什么不同,少数不同的是少数索引不允许索引键中存在相同的值。因为索引中每一个条目都与表中的行对应。少数索引不允许重复值被插入索引也就保证了对应的行不允许被插入索引所在的表,这也是为什么少数索引能够实现主键和候选键。
为表声明主键或少数约束时,SQL Server会自动创建与之对应的少数索引。你可以在没有少数约束的情况下创建少数索引,但反之则不行。定义一个约束时,SQL Server会自动创建一个与之同名的索引,并且你不能在删除约束之前删除索引。但可以删除约束,删除约束也会导致与之关联的索引被删除。
每个表中可以包含多个少数索引。比如说AdventureWorks的Product表,含有四个少数索引,分别是ProductID,ProductNumber,rowguid和ProductNameColumn,设置Product表的人将ProductID作为主键,其它三个作为候选键。
延伸阅读:
二、SQL是什么
Structured Query Language
‘SQL’是结构化查询语言,是一种用来操作 RDBMS 的数据库语言,当前关系型数据库都支持使用SQL语言进行操作,也就是说可以通过 SQL 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
- SQL语句主要分为:
DQL:数据查询语言,用于对数据进行查询,如select**
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete**
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor - 对于web程序员来讲,重点是数据的crud(增删改查),必须熟练编写DQL、DML,能够编写DDL完成数据库、表的操作,其它语言如TPL、DCL、CCL了解即可
- SQL 是一门特殊的语言,专门用来操作关系数据库
- 不区分大小写