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
展开
 我来答
匿名用户
2013-06-09
展开全部
好象要是在SQL中写存储过程来做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
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-09
展开全部
这个有点难度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-09
展开全部
AFDFDF
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-09
展开全部
有自增字段你不用,非搞麻烦的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式