slqserver 主鍵自動新增聚集索引的問題

2022-01-22 13:31:28 字數 2056 閱讀 9992

據我們所了解,sqlserver 在新增主鍵的時候,會自動將我寶貴的聚集索引新增在我們的id 上,然後,有些時候,我們想新增在

常用的搜尋的字段上,這個時候,如果主鍵已經建立了;我們可以使用下面的方法來進行更改:

--

create index index_索引名 on 表名(列名)

sp_helpindex

'category'--

檢視表的索引

exec sp_helpconstraint '

category'--

檢視表的約束

alter

table

category

drop

constraint

[category_primary_key_id]--

刪除約束

create

clustered

index category_clustered_name --

建立聚集索引

oncategory(name)

drop

index category.category_clustered_name --

刪除索引

--然後我們再新增主鍵;

alter

table

category

addconstraint category_primary_key_id primary

key(categoryid)

那麼如何在我們建立主鍵的時候,不自動新增我們的聚集索引呢;

答案是這樣:

use

[test]go

create

table

a (

id intprimary

keyclustered

--聚集索引)

---------------------------------

use[

test]go

create

table

b (

id intprimary

keynonclustered

--非聚集索引)

--drop table [a]

--drop table [b]

sp_helpindex 'a

'--檢視表的索引

gosp_helpindex 'b

'--檢視表的索引

附帶:sqlserver 中約束型別

和常見操作:

有這幾種約束

not null

unique

primary key

foreign key

check

default

---新增主鍵約束

alter table 表名

add constraint 約束名 primary key (主鍵)

---新增唯一約束

alter table 表名

add constraint 約束名 unique (字段)

---新增預設約束

alter table 表名

add constraint 約束名 default ('預設內容') for 字段

--新增檢查check約束,要求字段只能在1到100之間

alter table 表名

add constraint 約束名 check (字段 between 1 and 100 )

---新增外來鍵約束(主表stuinfo和從表stumarks建立關係,關聯欄位為stuno)

alter table 從表

add constraint 約束名

foreign key(關聯字段) references 主表(關聯字段)

gosql server中刪除約束的語句是:

alter table 表名 drop constraint 約束名

sp_helpconstraint 表名 找到資料表中的所有列的約束

這裡新增乙個基本ef 關於map配置,使用反射進行的configritaon.add info

orcal新增序列讓主鍵的自動增長

orcacle建立表id後不會自動增長,可以通過新增序列實現表id自動增長 表結構 建立刪除中間表 建立表結構序列的時候 命名結構 seq 表名 表字段,如上entity表需要對id欄位實現自動增長,名稱為seq entity id開始於 初始值 即產生的第乙個值 預設為1增量 序列的步長,如果省略...

mysql新增主鍵 MySQL新增主鍵的三種方法

完整性約束 約束條件 說明完整性型別 primary key 主鍵,一行資料的唯一標識,非空 實體 行 完整性 foreign key 外來鍵,關聯另外一張表的主鍵 引用完整性 not null 非空約束,欄位不允許為空 域完整性 unique 唯一約束,設定欄位的值是唯一的允許為空,但只能有乙個空...

刪除mysql主鍵語句 MySQL主鍵新增 刪除

2改動資料庫和表的字符集 alter database maildb default character set utf8 改動資料庫的字符集 alter table mailtable default character set utf8 改動表的字符集 假設您想要把錶預設的字符集和全部字元列 c...