一、不能在具有少數(shù)索引“CNO”的對象“dbo.STUDENT”中插入重復(fù)鍵的行
不能在具有少數(shù)索引“CNO”的對象“dbo.STUDENT”中插入重復(fù)鍵的行,這是因為你在student這張表上建了少數(shù)索引,索引名字為cno,因此,不能插入索引字段重復(fù)的數(shù)據(jù)??梢园褎?chuàng)建和修改區(qū)分保存,少數(shù)索引去掉改成普通索引。
少數(shù)索引和其它索引本質(zhì)上并沒有什么不同,少數(shù)不同的是少數(shù)索引不允許索引鍵中存在相同的值。因為索引中每一個條目都與表中的行對應(yīng)。少數(shù)索引不允許重復(fù)值被插入索引也就保證了對應(yīng)的行不允許被插入索引所在的表,這也是為什么少數(shù)索引能夠?qū)崿F(xiàn)主鍵和候選鍵。
為表聲明主鍵或少數(shù)約束時,SQL Server會自動創(chuàng)建與之對應(yīng)的少數(shù)索引。你可以在沒有少數(shù)約束的情況下創(chuàng)建少數(shù)索引,但反之則不行。定義一個約束時,SQL Server會自動創(chuàng)建一個與之同名的索引,并且你不能在刪除約束之前刪除索引。但可以刪除約束,刪除約束也會導(dǎo)致與之關(guān)聯(lián)的索引被刪除。
每個表中可以包含多個少數(shù)索引。比如說AdventureWorks的Product表,含有四個少數(shù)索引,分別是ProductID,ProductNumber,rowguid和ProductNameColumn,設(shè)置Product表的人將ProductID作為主鍵,其它三個作為候選鍵。
延伸閱讀:
二、SQL是什么
Structured Query Language
‘SQL’是結(jié)構(gòu)化查詢語言,是一種用來操作?RDBMS?的數(shù)據(jù)庫語言,當前關(guān)系型數(shù)據(jù)庫都支持使用SQL語言進行操作,也就是說可以通過?SQL?操作 oracle,sql server,mysql,sqlite 等等所有的關(guān)系型的數(shù)據(jù)庫
SQL語句主要分為:DQL:數(shù)據(jù)查詢語言,用于對數(shù)據(jù)進行查詢,如select**
DML:數(shù)據(jù)操作語言,對數(shù)據(jù)進行增加、修改、刪除,如insert、udpate、delete**
TPL:事務(wù)處理語言,對事務(wù)進行處理,包括begin transaction、commit、rollback
DCL:數(shù)據(jù)控制語言,進行授權(quán)與權(quán)限回收,如grant、revoke
DDL:數(shù)據(jù)定義語言,進行數(shù)據(jù)庫、表的管理等,如create、drop
CCL:指針控制語言,通過控制指針完成表的操作,如declare cursor對于web程序員來講,重點是數(shù)據(jù)的crud(增刪改查),必須熟練編寫DQL、DML,能夠編寫DDL完成數(shù)據(jù)庫、表的操作,其它語言如TPL、DCL、CCL了解即可SQL 是一門特殊的語言,專門用來操作關(guān)系數(shù)據(jù)庫不區(qū)分大小寫