关于索引的问题

bcbsoft 2008-08-19 12:46:46
当初在建立表时使用的是命令是:

CREATE TABLE Xsb (
[ID] [nvarchar] (45) NOT NULL PRIMARY KEY ,
[商品编号] [nvarchar] (10) NOT NULL ,
...
...

建立的表中 ID 是主键,表中自动建立了一个索引,索引名:PK__Xsb_1ED998B2,索引中的列是:ID 升序
类似这样的表还有很多,索引名后面部分的字符好象都是随机生成的

现在我需要把Xsb和其它表的类似的索引中再加入其它列,比如在上面的 Xsb 的PK__Xsb_1ED998B2索引中加入 商品编号 升序 ,

请问怎么用命令现实?
对于其它表也有类似情况,索引名肯定不同了,用什么命令完成上面的问题并且与索引名无关??
...全文
117 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wgzaaa 2008-08-20
  • 打赏
  • 举报
回复
补充说明:主键与unique约束请使用下列方式处理:以5楼第二句为例
create table tb_11(id int,b int,c varchar(10) CONSTRAINT cons_A PRIMARY KEY (id ASC) )
----------------------------------
alter table tb_11 drop constraint cons_A--先删除(索引名若不是自定义,请用sp_helpindex或其它方式找出)
alter table tb_11 alter column id int not null--参与主键的列要为空
alter table tb_11 alter column b int not null--参与主键的列要为空
alter table tb_11 add CONSTRAINT cons_A PRIMARY KEY (id ASC,b desc) --b相当于"商品编号"
wgzaaa 2008-08-20
  • 打赏
  • 举报
回复
5楼不是说了吗
create nonclustered index 索引名 on 表名(原来字段,商品编号)
whith PAD_INDEX ,FILLFACTOR =30,IGNORE_DUP_KEY ,drop_Existing
---索引名<通过 sp_helpindex 表名 或其它方式得到>
三下鱼 2008-08-19
  • 打赏
  • 举报
回复
删了重新建立看看呢
wgzaaa 2008-08-19
  • 打赏
  • 举报
回复
因为一个表能建多个索引,所以不可能与索引名无关
如果是更更改其中一个索引,可以用drop_Existing,如下,详细见帮助
create nonclustered index 索引名<通过sp_helpindex 表名 或其它方式得到> on 表名(原来字段,商品编号)
whith PAD_INDEX ,FILLFACTOR =30,IGNORE_DUP_KEY ,drop_Existing
建表的时候建索引如果是主键或UNIQUE 在create table 中写就可以了,
如果是其它情况在建表语句后写建索引语句.
bcbsoft 2008-08-19
  • 打赏
  • 举报
回复
商品编号不建索引时有一些查询特别慢,详细请看这个帖子:
http://topic.csdn.net/u/20080818/22/6ed46a03-2b2f-4b1b-92a4-217b0cfa6296.html

我是想用命令完成:
1、把现在已有的表的索引中加入商品编号
2、或者在建表的时候就能把把索引做好并且 ID 是主键

谢谢楼上三位的回复!
qiuming0306 2008-08-19
  • 打赏
  • 举报
回复
删了重新弄吧
  • 打赏
  • 举报
回复
在重新建立一个索引,设定索引名,然后加入你的列名
新鲜鱼排 2008-08-19
  • 打赏
  • 举报
回复
感觉没有这个必要。只要主键名称确定了就没有问题。
bcbsoft 2008-08-19
  • 打赏
  • 举报
回复
感谢Wgzaaa!


再麻烦你一下,我是想用命令完成:
把现在已有的表的索引中加入商品编号
wgzaaa 2008-08-19
  • 打赏
  • 举报
回复
create table tb_10(id int,b int,c varchar(10) PRIMARY KEY (id ASC) )
create table tb_11(id int,b int,c varchar(10) CONSTRAINT cons_A PRIMARY KEY (id ASC) )
create table tb_12(id int,b int,c varchar(10) CONSTRAINT cons_B PRIMARY KEY (id ASC,b desc) )
bcbsoft 2008-08-19
  • 打赏
  • 举报
回复
用SQL命令建表的时候能不能把索引做好并且 ID 是主键 ?

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧