当前位置:首页 » 编程语言 » 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 浏览:612
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