当前位置:主页>销售管理软件> 列表

sql server中如何把一个字段改成自增型字段 找进销存系统

仓库管理软件版1楼: 我想使用

alter table aa alter column bb int IDENTITY NOT NULL

不过总说有语法错误。

谢谢!

2楼: 去企业管理器修改吧
这里不可以修改 如仓库管理

3楼: 企业管理器,表设计,字段改为int型,然后下面属性为 标识 为是

4楼: 请问各位有sql语句可以改的吗?

5楼: 有吧,但我不懂。呵呵,你干嘛非得要语句来实现啊

6楼: 呵呵,为了方便别人。

仓库管理软件版7楼: 或者你可以建触发器

8楼: 我找到方法了:
1、删除主键
2、删除列
3、创建列

alter table aa drop PK__acsxm__1ED10DBF (原表以bb列为主键,PK__acsxm__1ED10DBF为主键名)
alter table aa drop column bb
alter table aa add bb int IDENTITY(1,1)

9楼: 因为这一列有数据,所有不能删除,能直接修改吗?

10楼: 设计表时,字段类型选INT,定为“标识种子”就可以了

11楼: 首先这列的值符合IDENTITY的条件吗?
如果不符合,那就不能修改了。
只能删除,在重新建立

12楼: 新列才可以 identity 如汽车维修管理软件

13楼: 用企業管理器或SQL語句修改基本表就可以了。

仓库管理软件版14楼: 已经有数据的列好像不能改成自增型的吧

15楼: 你可以增加一个字段


select identity(int, 1,1) as AutoID , * from aa
这样就可自增一个唯一标示的字段

16楼: 你先建个自增的字段,再导出脚本看看就知道了不是?

17楼: alter table aa add column bb int IDENTITY

18楼: 建立数据表时直接设为种子不就可以了吗?
或者到处脚本再看看里面的代码。

19楼: 很遗憾的告诉你. 没有办法用简单的SQL 语句完成.必须借助一个中间表,即使在企业管理器,表设计中修改.它也是如此,先建立一个零时表->把修改列的IDENTITY设好-> 把原表中的数据导入->接着DROP 原表->修改新表名为原表名.
你可以打开SQL 跟踪下, 在企业管理器修改表的某项为IDENTITY,保存后企业管理器的做法就知其原理!

20楼: 把原来的字段删除,再重新添加新的
alter table aa add bb int identity(1,1) not null

仓库管理软件版21楼: 同意Jhdandcl
新建列F_DstCol
复制F_SrcCol的值到F_DstCol
删除F_SrcCol列

22楼: 写个存储过程,字段标识使用 一个字母+数字(自动判断增加)的形式。如下:
CREATE procedure Insert_Pepole_Date
@pDABM nvarchar(50),--档案编码
as
--截取第一个字符
DECLARE @str nvarchar(1)
DECLARE @int int
select @str=substring(@pDABM,1,1)


--获得该类型员工的最大标号值

--如果存在记录
IF EXISTS (select DABM from pepole_date where DABM like @str+''%'')
begin
select @int=max(SUBSTRING(DABM,2,LEN(DABM)-1)+1-1) from pepole_date where DABM like @str+''%''
select @int=@int+1
select @pDABM=RTRIM(@str)+LTRIM(str(@int))
end
else

--如果不存在就为1
begin
select @pDABM=@str+''1''
end

insert into pepole_date values(@pDABM)
GO 如进销存系统