注册 登录
编程论坛 SQL Server论坛

关于修改主键的问题。

power6d 发布于 2007-01-25 15:29, 1012 次点击
Create Table Tmp1
(
F1 integer Not Null,
F2 integer Not Null,
F3 integer Not Null
Primary Key(F1)
)

我想用SQL将主键改为F1,F2的组合主键,怎么办?
8 回复
#2
棉花糖ONE2007-01-25 15:32

先删原来的主键,再建,去查查alter table 的帮助,认真点看

#3
power6d2007-01-25 15:57
原谅我的愚笨吧,版主。我实在看不懂,我只知道Alter Table可以加KEY,但不知道怎么删除啊。教教我吧。
#4
棉花糖ONE2007-01-25 15:59
增加key的add改成drop
#5
power6d2007-01-25 16:04
Alter Table Tmp1 Add Primary Key(F1,F2) ---这句执行成功了。
Alter Table Tmp1 Drop Primary Key(F1,F2)---这句执行完后就成这样了:

服务器: 消息 156,级别 15,状态 1,行 1
在关键字 'Primary' 附近有语法错误。

#6
棉花糖ONE2007-01-25 16:18
那就这样吧
select name from sysindexes where id=object_id('student') //获取索引名字
alter table table_name drop constraint PK__student__79A81403
#7
power6d2007-01-25 16:26
成了。谢谢版主啊,真是受益非浅啊。

[此贴子已经被作者于2007-1-25 16:25:58编辑过]


#8
ninggang2007-01-25 23:55
学了,顶
<1>select name from sysindexex where id=object_id('表名')
//获取索引的名字,刚才看了一下,系统表中存在着sysindexex这张表,通过这张表可以查出其索引的名字
而函数object_id('表名')返回的是该张表的id,实际上在其他的网页编程语言中也有类似的用法,看来都
是相通的
<2>Alter Table Tmp1 Add Primary Key(F1,F2)
//以前俺也不知道这个问题,将两列设为主键的用发
<2>建议:
在自己定义主键,外键,索引的时候,最好自己命名并且规范一点
用的时候,直接拿出来用即可
#9
ninggang2007-01-25 23:58
哈哈,修改一下,刚才这里错了
系统表sysindexex应该改为sysindexes
1