• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

<<急>>对SQL中的表删了主键后,再重新建立,为什么不能建立?说是无法建立索引......

mch1985 2008-03-25 06:14:49
对SQL中的表删了主键后,再重新建立,为什么不能建立?说是无法建立索引......
...全文
60 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yyyyzzzz_2002 2008-03-25
补充一下,一个表中只能有一个clustered index,错的根源是你试图建立两个clustered index.
回复
yyyyzzzz_2002 2008-03-25
在创建主键时,如果你指定主键类型,他会默认一个clustered index,如果要指定noncluster index
需要指定的,例如:
USE tempdb
GO

IF OBJECT_ID('tempdb..#') IS NOT NULL
DROP TABLE #
CREATE TABLE #( ID int identity(1,1) NOT NULL
,name varchar(50) NOT NULL
CONSTRAINT pk_#_id PRIMARY KEY NONCLUSTERED
(ID DESC)
)
--view structure information
EXEC sp_help '#'

所以,你建立不上主键,可能是其他字段建立了clustered index,那么这时,应该为主键指定nonclustered index
回复
中国风 2008-03-25
create table T(Col int constraint PK_T primary key,col2 int)
go

--删
alter table T drop constraint PK_T
alter table T drop column Col

--加
alter table T add Col int
alter table T alter column Col int not null

alter table T add constraint PK_T primary key(Col)
回复
fcuandy 2008-03-25
是删除了主健信息还是删除了主健对应的列?
回复
dawugui 2008-03-25
[Quote=引用楼主 mch1985 的帖子:]
对SQL中的表删了主键后,再重新建立,为什么不能建立?说是无法建立索引......
[/Quote]

能重新建立主键.但对此列可不需再建立索引.
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-25 06:14
社区公告
暂无公告