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

mch1985 2008-03-25 06:14:49
对SQL中的表删了主键后,再重新建立,为什么不能建立?说是无法建立索引......
...全文
119 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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]

能重新建立主键.但对此列可不需再建立索引.

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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