===如何用Sql语句改变表中的一行为自动增长类型?===
已有表中相应字段可能是Int,或char,
表中已有很多数据,当然是不希望破坏的
问题点数:50、回复次数:7Top
1 楼IronPromises(铁诺)回复于 2002-04-23 12:19:04 得分 40
语句很多.
不想一一写出.
你可以打开profiler监控.
然后用企业管理器修改.
看看MS用了哪些语句.
Top
2 楼liuyxit(初学Oracle)回复于 2002-04-23 12:19:04 得分 0
试过下面的没有:
alter table 表名
alter column 列名 varchar(n)
(先备份数据库)Top
3 楼littlepotato(土豆土豆)回复于 2002-04-23 12:42:07 得分 10
sqlserver 的char 类型不能设置为identity类型,
用语句修改这种属性,可以把原表的数据用语句导出,存入一个临时表中,
然后把原表删除,再建立一个与原表名相同的表,但其结构Top
4 楼littlepotato(土豆土豆)回复于 2002-04-23 12:44:47 得分 0
接上面:
的相应字段多了identity 属性,再 把原来的数据insert 回来。
不知道我说得对不对,但sqlserver 自己就是这么做的,如果那位有更简单的办法,email to me :little_potato@eyou.comTop
5 楼lz_0618(lz_0618)回复于 2002-04-23 13:15:06 得分 0
看来只能如此了,可这样做的话,要是一个大很大的表,
就需要化很长的时间啊Top
6 楼wylyf(李寻欢)回复于 2002-04-23 13:50:27 得分 0
同意斑竹!用企业管理器把有数据的列变为自动增加的列是最好的办法了,
楼上的方法恐怕不能满足要求,因为自动增加字段是不可编辑的,你无法保证INSERT 回来的数据和原数据的序号一样!
只要在字符型的数据转换为整数型是不出问题,在变为自动增加的字段的时候也不会出现问题的!Top
7 楼lz_0618(lz_0618)回复于 2002-04-23 22:22:58 得分 0
to wylyf(李寻欢) ,
哈哈,同意斑竹!??你没有搞明白,斑竹是让我改改自增长类型时用profiler跟踪,看看究竟执行了什么语句啊!!!
跟踪后发现Ms Sql的企业管理器确实是按 littlepotato(迷茫的土豆) 所说的那样做的,看来是没有什么简便的方法了,Ms sql这个破玩意,看来要简单用用还可以,确实象有些人说的,象玩具!!
Top
8 楼lz_0618(lz_0618)回复于 2002-04-23 22:27:08 得分 0
现在的CSDN是狗屎,敲了一大对东西,白敲了!!
不敲了, wylyf(李寻欢) ( ) 你错误理解了斑竹的意思了!!!!
Top




