恐怕不行,必须通过SQL脚本删除一列然后增加一列的。ALTER
TABLE
news
DROP
COLUMN
ID
ALTER
TABLE
news
ADD
ID
INT
IDENTITY(1,1)
B. sql sever中如何将一列修改为自增长列
原来有个表news,id是主键,但不是非主键,现在需要将其修改为主键,方法如下: 对原有的id列是无法直接将其修改为主键的,必须间接地来实现,具体如下: 首先增加一个新列并定义为自增长列alter table news add id1 int Identity(1,1) not null 然后再资源管理器中右击news表,选择修改,将id列删除,并将id1修改为id即可,当然这个过程也可以通过sql语句来实现
C. sql server中如何实现自增字段
1、主键自增,以及建表的语句如下:
CREATE TABLEIF NOT EXISTS `t_email_notice` (
`id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,`send_time` INT (16) NOT NULL DEFAULT '0',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中 `id` INT (11) UNSIGNED NOT NULL AUTO_INCREMENT,这句话表示设置id字段字增,类型为int
2、varchar类型的主键,不会自增。但是你可以通过创建触发器的形式,来实现自增。代码如下:
CREATE TRIGGER `T` BEFORE INSERT ON `user`FOR EACH ROW begin
set new.id=concat('SH',lpad(((SELECT substring(id,3,4) from user where id=(select id from user order by id desc limit 1))+1),4,0));
end;
这段语句的意思是,当user表中新插入一条一条语句,会触发‘触发器T’将以’SH‘开头的id字段自增+1。
(3)sql更新自增扩展阅读
sql语句建表规则如下:
create table ‘表名’ (‘字段1’ type1 [not null] [primary key] identity(起始值,递增量),‘字段2’type2 [not null], ...)--primary key为主键 identity表示递增数量。
D. sql更新语句 自增
sql更新语句 自增
自增列不能修改,只能删除或者添加 所以对应的就只能先删除该列,然后再添加列,添加时赋值属性为标识列 创建新列后会自动填充数字
E. 在SQL中要怎样设置自增列
2005?打开SQL Server Management Studio,打开数据库之后,在选中的表上点“修改”,在选中需要设置为自增的字段,在右下方的表设计器里选择“标识规范”,(如下图:)选“是”,就设定好了。
F. SQL自动增长列数据变动刷新的问题
这样是有点麻烦,不知道你的那张表是否还有其他的唯一标识符的字段,如果没有,可以尝试触发器或者其他方式,如果有的话可以这样做,不需要在表中添加一个int列,假设编号是num,从10001开始,另一个唯一标识符为keyid如下:
取出来的时候:
select row_number() over(order by 排序字段)+10000 num , * from tablename
这样取出来的时候都是从10001开始的,还可以自定义排序,
删除的时候
(
selectkeyidfrom(
selectrow_number()over(orderby排序字段)+10000num,*
fromtablename
)t
wherenum=10002
)
这样就删除了10002对应的记录,而且下次取的时候,序号仍然是连续的,如果按照你那种方法,数据量小还好,如果数据量很大,每删除一条编号靠前的数据,就需要更新大量的数据,性能方面影响很大。
G. sql 修改某列 为自增字段
自增列不能直接修改,必须将原有id列删除,然后重新添加一列具有identity属性的id字段。比如你要修改的字段名为id:
alter
table
表名
drop
column
id
alter
table
表名
add
id
int
identity(1,1)
H. sql的自增列如何重置
--操作的过程中,注意一点,标识列自增是不能修改的,那么首先
--去除该列自增的标识,然后再修改id,成功修改后,再加上标识
--r如果不修改标识,会报错:“无法更新标识列”
create table #a
(ids int,
names varchar(100)
)
--插入测试数据,序号从100开始的,表示你当前表的情况
declare @a int
set @a=100
while @a<200
begin
insert #a(ids)
select @a
set @a=@a+1
end
--假定还有一个#b表也引用了该序号
--插入测试数据到#b
select ids n_id,names ff into #b from #a
--好,现在开始处理序号问题了,用临时表#tmp过渡
--这里用了一个标识列,请注意!
--将带一个新的序列的数据插入到表#tmp中
select identity(int,1,1) flag, * into #tmp from #a
--看看结果是不是有了新的序列了,呵
select * from #tmp
--那么现在就利用#tmp表来更新所有用到该序列的表
--更新#a
update #a set ids=flag from #a a,#tmp b where a.ids=b.ids
--更新其他表引用了该序列的,比如#b
update #b set n_id=flag from #b a,#tmp b where a.n_id=b.ids
I. sqlserver将某字段更新成自增型的sql语句
自增列不能修改,只能删除或者添加
所以对应的就只能先删除该列,然后再添加列,添加时赋值属性为标识列
创建新列后会自动填充数字