mssql自动生成字符串id的存储过程
表结构createtabless(idvarchar(20)primarykey,namesvarchar(50))id结构ssid00+n...
表结构
create table ss
(
id varchar(20) primary key,
names varchar(50)
)
id结构ssid00 + n 展开
create table ss
(
id varchar(20) primary key,
names varchar(50)
)
id结构ssid00 + n 展开
5个回答
2013-06-09
展开全部
好象要是在SQL中写存储过程来做ID的自动生成不容易啊
但是如果在程序中自己写个函数生成倒是挺容易的,你可以用下这方法,我写的只是SQL语句
select max(字段名,即你要的ID) as max from 表where 条件
找到MAX后 你把ID中的ssid00去掉,然后N+1,最后再把ssid00加上N+1就是新的ID了,这样做更简单,我ID的生成都是这样做的。
但是如果在程序中自己写个函数生成倒是挺容易的,你可以用下这方法,我写的只是SQL语句
select max(字段名,即你要的ID) as max from 表where 条件
找到MAX后 你把ID中的ssid00去掉,然后N+1,最后再把ssid00加上N+1就是新的ID了,这样做更简单,我ID的生成都是这样做的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-09
展开全部
CREATE FUNCTION No
(
)
RETURNS varchar(200)
AS
BEGIN
declare @fu varchar(200)
declare @fu2 varchar(200)
set @fu=cast(year(getdate()) as varchar)+(case when month(getdate())>9 then cast(month(getdate()) as varchar) else '0'+cast(month(getdate()) as varchar) end)+(case when day(getdate())>9 then cast(day(getdate()) as varchar) else '0'+cast(day(getdate()) as varchar) end)
select @fu2=cast((cast(max(right(isnull(Order_No,'0000'),4)) as int)+1) as varchar) from Order where left(Order_No,8)=@fu
if (@fu2 is null)
begin
set @fu=@fu+'0001'
end
else
begin
if(len(@fu2)=1) set @fu2='000'+@fu2
if(len(@fu2)=2) set @fu2='00'+@fu2
if(len(@fu2)=3) set @fu2='0'+@fu2
set @fu=@fu+@fu2
end
return @fu
END
(
)
RETURNS varchar(200)
AS
BEGIN
declare @fu varchar(200)
declare @fu2 varchar(200)
set @fu=cast(year(getdate()) as varchar)+(case when month(getdate())>9 then cast(month(getdate()) as varchar) else '0'+cast(month(getdate()) as varchar) end)+(case when day(getdate())>9 then cast(day(getdate()) as varchar) else '0'+cast(day(getdate()) as varchar) end)
select @fu2=cast((cast(max(right(isnull(Order_No,'0000'),4)) as int)+1) as varchar) from Order where left(Order_No,8)=@fu
if (@fu2 is null)
begin
set @fu=@fu+'0001'
end
else
begin
if(len(@fu2)=1) set @fu2='000'+@fu2
if(len(@fu2)=2) set @fu2='00'+@fu2
if(len(@fu2)=3) set @fu2='0'+@fu2
set @fu=@fu+@fu2
end
return @fu
END
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-09
展开全部
这个有点难度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-09
展开全部
AFDFDF
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-09
展开全部
有自增字段你不用,非搞麻烦的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询