當前位置:首頁 » 編程語言 » sqluniqueindex

sqluniqueindex

發布時間: 2022-04-17 03:06:18

sql server 2000表裡已經設置主鍵刻我還有一項不能重復如何不讓他重復

問題補充:如何操作?
-----------------
以下就是例子,看不明?
如:ID為主健,Name為唯一約束
create
table
t(ID
int
primary
key,Name
nvarchar(100)
not
null
unique)
or
create
table
t(ID
int
primary
key,Name
nvarchar(100)
not
null
)
create
unique
index
U_t_Name
on
t(Name)--唯一索引

㈡ 如何解決SQL Server資料庫查詢速度慢

資料庫的結構很重要,表的建立,對需要用到的欄位進行建立索引:盡量單表查詢。
CREATE
INDEX
index_name
ON
table_name
(column_name);
多欄位查詢,建立索引:
CREATE
INDEX
index_name
ON
table_name
(column_name1,column_name2);
唯一索引

CREATE
UNIQUE
INDEX
index_name
ON
table_name
(column_name);

㈢ SQL server中 表中如何創建索引

if exists(select *from sys.objects where naem = 'newindex')
drop index newindex
create index
--===================================
竟然沒有懸賞...唉...
那算了吧
我還是都告訴你吧..

看個示例
自己琢磨去:
--==============================================
use master
go
if db_id(N'zhangxu')is not null
drop database zhangxu
go
create database zhangxu
sp_helpdb zhangxu
use zhangxu
go
IF EXISTS (SELECT *FROM SYS.OBJECTS WHERE NAME = N'WORKER')
DROP TABLE WORKER
GO
create table worker
(
w_id int identity (1000,1) not null,
w_name Nvarchar(10) unique,
w_age SMALLINT CONSTRAINT CK_W_AGE CHECK(w_age>20 and w_age<150),
w_pay money DEFAULT 0,
CONSTRAINT PK_W_ID PRIMARY KEY(W_ID)
)
SELECT *FROM WORKER--用查詢技術查看錶信息
sp_help worker--利用存儲過程查看錶信息
/*
創建簡單的非聚集索引
*/
USE ZHANGXU
GO
if exists(select name from sys.indexes where name = N'IX_ID_NAME')
DROP INDEX IX_ID_NAME on worker
go--檢查是否存在索引,有則刪除索引
create index IX_ID_NAME--創建索引
on worker(w_id,w_name)--在ID NAME 兩個欄位上創建非聚集索引
drop index worker.IX_ID_NAME--刪除索引
select *from sys.indexes where name = 'IX_ID_NAME'--查看索引
/*
創建唯一非聚集索引
*/
USE ZHANGXU
GO
IF EXISTS(SELECT NAME FROM SYS.INDEXES WHERE NAME = N'IX_W_NAME')
DROP INDEX IX_W_NAME ON WORKER
GO
CREATE UNIQUE INDEX IX_W_NAME--唯一非聚集索引
ON WORKER(W_NAME)
/*
查看索引T-SQL腳本
*/
--IX_W_NAME 唯一 非聚集索引
USE [zhangxu]
GO
/****** 對象: Index [IX_W_NAME] 腳本日期: 07/29/2007 16:54:53 ******/
CREATE UNIQUE NONCLUSTERED INDEX [IX_W_NAME] ON [dbo].[worker]
(
[w_name] ASC
)
WITH
(
SORT_IN_TEMPDB = OFF,
DROP_EXISTING = OFF,
IGNORE_DUP_KEY = OFF,
ONLINE = OFF
)
ON [PRIMARY]

--PK_W_ID聚集索引
USE [zhangxu]
GO
/****** 對象: Index [PK_W_ID] 腳本日期: 07/29/2007 16:56:45 ******/
ALTER TABLE [dbo].[worker]
ADD CONSTRAINT [PK_W_ID] PRIMARY KEY CLUSTERED
(
[w_id] ASC
)
WITH
(
SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
ONLINE = OFF
) ON [PRIMARY]

--UQ_WORKER 唯一,非聚集索引
USE [zhangxu]
GO
/****** 對象: Index [UQ__worker__07020F21] 腳本日期: 07/29/2007 16:58:38 ******/
ALTER TABLE [dbo].[worker]
ADD UNIQUE NONCLUSTERED
(
[w_name] ASC
)
WITH
(SORT_IN_TEMPDB = OFF,
IGNORE_DUP_KEY = OFF,
ONLINE = OFF
) ON [PRIMARY]
select *from worker
insert into worker(w_name,w_age,w_pay) values('王國龍',25,4500)

㈣ 【求助】oracle中sql語句 此列列表已索引的解決辦法

根據你建表的語句,確實不需要再創建索引,因為這兩列被你設為主鍵,所以你再建索引會報錯。
創建主鍵時資料庫會創建同名的唯一索引,當然因為是主鍵的關系,所以和直接創建唯一索引還是有一點區別:作為主鍵這兩列的值不允許為空

㈤ Sql中創建唯一約束

」;學

㈥ access建立可重復索引應該怎麼寫SQL

請參考下列創建非唯一索引SQL語句:
create
index
index_Proct_pName
on
Proct
(pName);
此語句為產品表的"產品名"欄位添加一個名為"index_Proct_pName"的可重復索引。
如果要添加唯一索引,請參考下列寫法:
create
unique
index
index_Proct_PID
on
Proct
(PID);
此語句為產品表的"PID"欄位添加一個名為"index_Proct_PID"的唯一索引。

㈦ SQL server 固定條件下 刪除重復數據

MicrosoftSQLServer表不應該包含重復行和非唯一主鍵。為簡潔起見,在本文中我們有時稱主鍵為「鍵」或「PK」,但這始終表示「主鍵」。重復的PK違反了實體完整性,在關系系統中是不允許的。SQLServer有各種強制執行實體完整性的機制,包括索引、唯一約束、主鍵約束和觸發器。盡管如此,在某些情況下還可能會出現重復的主鍵;如果出現此類情況,就必須清除重復主鍵。出現重復主鍵的情形之一是,在SQLServer外部的非關系數據中存在重復的PK,在導入這些數據時沒有強制執行PK唯一性。出現重復主鍵的另一種情形來自資料庫設計錯誤,如沒有對每張表強制執行實體完整性。通常在嘗試創建唯一索引時會發現重復的PK,因為如果找到重復的鍵,唯一索引的創建即會中止,並且將顯示以下消息:Msg1505,Level16,.如果使用的是SQLServer2000或SQLServer2005,則會收到以下錯誤消息:Msg1505,Level16,me'%.*ls'andindexname'%.*ls'.Theplicatekeyvalueis%ls.createtablet1(col1int,col2int,col3char(50))insertintot1values(1,1,'datavalueone')insertintot1values(1,1,'datavalueone')insertintot1values(1,2,'datavaluetwo')SELECTcol1,col2,count(*)FROMt1GROUPBYcol1,col2HAVINGcount(*)1這將為表中的每組重復的PK值返回一行。此結果中的最後一列是特定PK值的重復數。col1col2112如果只有幾組重復的PK值,則最佳方法是手動逐個刪除它們。例如:=1andcol2=1rowcount值應該是給定鍵值的重復數減去1。在該示例中,有2個重復的主鍵,所以rowcount被設置為1。col1/col2值來自上面的GROUPBY查詢結果。如果GROUPBY查詢返回多行,則「setrowcount」查詢將必須為這些行中的每一行各運行一次。每次運行該查詢時,將rowcount設置為特定PK值的重復數減去1。在刪除行之前,您應該驗證是否整行重復。雖然整行重復不太可能發生,但可能PK值重復,而整行不重復。例如一個將身份證號碼作為主鍵的表,該表有兩個具有相同號碼的不同的人(即行),但每個人有唯一的屬性。在這種情況下,任何引起重復鍵的問題可能還引起在行中放入有效的唯一的數據。在刪除該數據之前,應該將該數據復制出來並保存下來以進行研究和適當的調整。

㈧ 為Student表中的Sno屬性升序建立唯一索引,寫出相應的SQL語句

create
unique
index
student_sno_idx
on
student(sno);
建立唯一索引的列上不能有重復的值,即該列要滿足not
null和unique約束

㈨ 如何通過SQL創建刪除表的索引

在執行CREATE
TABLE語句時可以創建索引,也可以單獨用CREATE
INDEX或ALTER
TABLE來為表增加索引。
1.ALTER
TABLE
ALTER
TABLE用來創建普通索引、UNIQUE索引或PRIMARY
KEY索引。
ALTER
TABLE
table_name
ADD
INDEX
index_name
(column_list)
ALTER
TABLE
table_name
ADD
UNIQUE
(column_list)
ALTER
TABLE
table_name
ADD
PRIMARY
KEY
(column_list)
2.CREATE
INDEX
CREATE
INDEX可對表增加普通索引或UNIQUE索引。
CREATE
INDEX
index_name
ON
table_name
(column_list)
CREATE
UNIQUE
INDEX
index_name
ON
table_name
(column_list)
table_name、index_name和column_list具有與ALTER
TABLE語句中相同的含義,索引名不可選。另外,不能用CREATE
INDEX語句創建PRIMARY
KEY索引。
3.索引類型
在創建索引時,可以規定索引能否包含重復值。如果不包含,則索引應該創建為PRIMARY
KEY或UNIQUE索引。對於單列惟一性索引,這保證單列不包含重復的值。對於多列惟一性索引,保證多個值的組合不重復。
PRIMARY
KEY索引和UNIQUE索引非常類似。事實上,PRIMARY
KEY索引僅是一個具有名稱PRIMARY的UNIQUE索引。這表示一個表只能包含一個PRIMARY
KEY,因為一個表中不可能具有兩個同名的索引。
下面的SQL語句對students表在sid上添加PRIMARY
KEY索引。
ALTER
TABLE
students
ADD
PRIMARY
KEY
(sid)
4.
刪除索引
可利用ALTER
TABLE或DROP
INDEX語句來刪除索引。類似於CREATE
INDEX語句,DROP
INDEX可以在ALTER
TABLE內部作為一條語句處理,語法如下。
DROP
INDEX
index_name
ON
talbe_name
ALTER
TABLE
table_name
DROP
INDEX
index_name
ALTER
TABLE
table_name
DROP
PRIMARY
KEY
其中,前兩條語句是等價的,刪除掉table_name中的索引index_name。
第3條語句只在刪除PRIMARY
KEY索引時使用,因為一個表只可能有一個PRIMARY
KEY索引,因此不需要指定索引名。如果沒有創建PRIMARY
KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。
如果從表中刪除了某列,則索引會受到影響。對於多列組合的索引,如果刪除其中的某列,則該列也會從索引中刪除。如果刪除組成索引的所有列,則整個索引將被刪除。

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:336
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:378
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:613
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:32
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:945
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:742
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:803
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:511
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:372