修改字段类型为“标识”,并设置该字段为主键的SQL语句怎么写

来源:互联网 发布:淘宝首页banner尺寸 编辑:程序博客网 时间:2024/04/28 00:06
主  题:   修改字段类型为“标识”,并设置该字段为主键的SQL语句怎么写?? 作  者:   china_skag () 等  级:     信 誉 值:   100 所属论坛:   MS-SQL Server 疑难问题 问题点数:   20 回复次数:   11 发表时间:   2006-7-28 14:26:56              

如题!
    回复人:LouisXIV(夜游神) ( ) 信誉:100 2006-7-28 14:38:54 得分:0     ?

Unable to alter a column into identity field
Top     回复人:liangpei2008(逍遥叹) ( ) 信誉:100 2006-7-28 14:50:59 得分:0     ?

将字段删除了重建

Top     回复人:china_skag() ( ) 信誉:100 2006-7-28 14:56:23 得分:0     ?

在线等待。。。。。
Top     回复人:hellowork(一两清风) ( ) 信誉:100 2006-7-28 15:06:53 得分:0     ?

要成为IDENTITY标识列的列只能先被删除然后再添加同名列.
----删除列
alter table tablename drop COLUMN id
GO
----添加IDENTITY列
alter table tablename add id int identity(1,1)
GO
----设置IDENTITY列为主键
alter table tablename add constraint [PK_tablename] PRIMARY KEY CLUSTERED ([id])
Top     回复人:china_skag() ( ) 信誉:100 2006-7-28 15:39:34 得分:0     ?

[PK_tablename] 表示什么?
如果又有一个表:title
列名:id name type content addtime

其中ID是INT类型

我现在想修改ID为标识(IDENTITY)且为主键(PRIMARY KEY),改如何写SQL语句?

以下是我写的,对吗?请指教。

alter table title drop COLUMN id
GO
alter table title add id int identity(1,1)
GO
alter table title add constraint [PK_tablename] PRIMARY KEY CLUSTERED ([id])


Top     回复人:hellowork(一两清风) ( ) 信誉:100 2006-7-28 15:45:07 得分:0     ?

把PK_tablename中的tablename换成title就行了,例如:
alter table title add constraint [PK_title] PRIMARY KEY CLUSTERED ([id])
tablename只是占位符,使用时换成具体的表对象名.
Top     回复人:LouisXIV(夜游神) ( ) 信誉:100 2006-7-28 15:45:26 得分:0     ?

[PK_tablename] 表示什么?
-----------------------
It just a name for the Primary Key, You can name it as any string you can imagine.
Top     回复人:china_skag() ( ) 信誉:100 2006-7-28 15:48:55 得分:0     ?

非常感谢,hellowork(一两清风) ,LouisXIV(夜游神) !
Top     回复人:hellowork(一两清风) ( ) 信誉:100 2006-7-28 15:51:11 得分:0     ?

[PK_title]是主键约束名.
在SQLSERVER中,主键、外键、默认值、触发器、存储过程、函数等都是对象,必须为这些对象取个名字,SQLSERVER好通过这个名字来管理她们.
通常在命名对象时使用她们的类别缩写作为对象名的前缀,以便通过该前缀就可以知道这个对象是哪里对象.所以,[PK_title]就是主键的名字,PK是PrimaryKey的缩写.
Top     回复人:china_skag() ( ) 信誉:100 2006-7-28 15:57:08 得分:0     ?

哦!原来这样,谢谢!
Top     回复人:china_skag() ( ) 信誉:100 2006-7-28 15:58:35 得分:0     ?

alter table title drop COLUMN id
GO
alter table title add id int identity(1,1)
GO
alter table title add constraint [PK_title] PRIMARY KEY CLUSTERED ([id])