SQL Server数据库怎么一步到位插入一列自增长且为6位的数据

原表a没有这一列。我怎么插入一列满足:1;我任意输入的数据,然后自增长。2;这列数据控制为6位。ps:我只会IDENTITY。但不能改为6位,只能插到临时表修改。求高人指... 原表a没有这一列。 我怎么插入一列满足:
1;我任意输入的数据,然后自增长。
2;这列数据控制为6位。

ps:我只会IDENTITY 。但不能改为6位,只能插到临时表修改。 求高人指点,小弟感激不尽。
展开
 我来答
badkano
2013-07-05 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885365
团长

向TA提问 私信TA
展开全部

是这个意思吗

创建表

create table t(id varchar(6))

执行过程

declare @i int
set @i=1
while @i<=100
begin
 insert into t values (right('000000'+CAST(@i as varchar),6))
set @i=@i+1
end

结果

结果太长,就给你截取一部分吧

追问
我试试先   谢谢你
百度网友5c91d28
推荐于2016-04-06 · TA获得超过5084个赞
知道大有可为答主
回答量:1916
采纳率:50%
帮助的人:1695万
展开全部
使用IDENTITY属性列,并增加一个计算列,用来显示楼主需要的那种形式的字段
给你个例子
create table test1(
Id int identity,
IdString as RIGHT('00000'+cast(id as varchar(10)),6),
a int
);

insert into test1(a) values(1)
GO 10

SELECT * FROM test1;

执行以后,可以看到IdString字段就是楼主需要的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友72ef19b43
2013-07-05 · TA获得超过474个赞
知道小有建树答主
回答量:394
采纳率:0%
帮助的人:340万
展开全部
你好,根据你的图片显示的效果,数据库自增长无法满足你要求。首先自增长只适用于数字类型,数字类型不能以0开头 ,你的是000001开始明显不是数字类型。如果你想从100000开始,比如100001,100002.。。你可以设置自增长初始值 为100000,这样可以。但是无法 从000001开始。

提供你思路,思路一:自己写sql,进行逻辑判断,保证位数为6,不足6位的自动补0.
思路二,自己写编程工具,然后进行逻辑判断。

如有疑问,欢迎继续提问。如果本答案对你有用,请选为最佳答案,谢谢。
追问
放假了2天,才看到,不好意思!  那就是说不能一步到位吗。  我都是插入临时表,原表新增一列,再关联原表,修改原表。  赶脚很麻烦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d4b9174
2013-07-05 · TA获得超过1215个赞
知道小有建树答主
回答量:742
采纳率:57%
帮助的人:169万
展开全部
是不是要用触发器实现?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式