--创建测试表
create table usertable(userid varchar(20),username nvarchar(20))
go
--创建触发器
create trigger tg_insert on usertable
for insert
as
declare @username nvarchar(20)
declare @userid varchar(20)
declare @num int
declare @i int
select @userid=max(userid) from usertable where userid like 'w' + convert(varchar(10),getdate(),112) + '%'
if @userid is null
set @userid='w' + convert(varchar(10),getdate(),112) + '000001'
else
begin
set @num=cast(substring(@userid,10,6) as int)
set @num=@num + 1
set @i=len(cast(@num as varchar(6)));
set @userid='w' + convert(varchar(10),getdate(),112)
while(@i<6)
begin
set @userid=@userid + '0';
set @i=@i + 1;
end
set @userid=@userid + cast(@num as varchar(6))
end
select @username=username from inserted
rollback
insert into usertable values(@userid,@username)
go
--测试数据
insert into usertable(username) values('aa')
go
insert into usertable(username) values('bb')
go
insert into usertable(username) values('cc')
go
--显示数据
select * from usertable
go
--删除测试表
drop table usertable
CREATE PROCEDURE [dbo].[Sp_USERFLM]
@UserName nvarchar(50)=null,
@UserPwd nvarchar(50)=null
as
declare @strNumber nvarchar(50)
declare @i int ---循环因子
set @i=1
--where 后面的条件是在同一年内,序号在原来基础上增加,到第二年,序号重新从1开始增加,
set @strNumber=( select max(cast(right(UserID,7) as int)) FROM USETABLE where SUBSTRING (UserID , 2 , 4 )=year(getdate()))
set @strNumber=isnull(@strNumber,0)+1
while (@i<7) --数字
begin
set @strNumber='0'+@strNumber
set @i=@i+1
end
--W+日期+数字
set @strNumber='W'+convert(nvarchar(8),getdate(),112)+@strNumber
insert into USETABLE values (@strNumber,@UserName,@UserPwd)
GO
CREATE PROCEDURE [dbo].[Sp_USERFLM]
@UserName nvarchar(50)=null,
@UserPwd nvarchar(50)=null
as
declare @strNumber nvarchar(50)
declare @i int---循环因子
--where 后面的条件是在同一年内,序号在原来基础上增加,到第二年,序号重新从1开始增加,
set @strNumber=( select max(cast(right(UserID,7) as int)) FROM USETABLE where SUBSTRING (UserID , 2 , 4 )=year(getdate()))
set @strNumber=isnull(@strNumber,0)+1
while (len(@strNumber)<8)--数字
begin
set @strNumber='0'+@strNumber
end
--W+日期+数字
set @strNumber='W'+convert(nvarchar(8),getdate(),112)+@strNumber
insert into USETABLE values (@strNumber,@UserName,@UserPwd)
分享到:
相关推荐
存储过程实现流水号,可以实现防止并发生成重复的流水号,.net 技术,sql server 数据库编写,可以参考学习哦
用于自动生成流水账号的存储过程 有详细的注释
存储过程生成工具存储过程生成工具存储过程生成工具
SQL存储过程自动生成流水
存储过程代码生成器存储过程代码生成器存储过程代码生成器存储过程代码生成器存储过程代码生成器存储过程代码生成器
主要介绍了mybatis+mysql 使用存储过程生成流水号的实现代码,需要的朋友可以参考下
存储过程生成器Oracle
存储过程生成器,增删改查,还要下载学习研究!
sql server 2000 分页存储过程,DB2分页存储过程,db2自动生成流水号存储过程
存储过程生成器,可以生成 Select, insert, update语句
codesmith存储过程生成模板 包括增删改查
sqlserver存储过程生成器,一直在用。比较好用。
存储过程生成器c#源码 既是源码还是一个很好用的编程辅助工具存储过程生成器c#源码 既是源码还是一个很好用的编程辅助工具
根据数据库,自动生成增,删,改,查的存储过程!
4、 可生成现行业主流的不同数据库类型的存储过程。 5、 添加的数据符合项目真实客户环境,数据类型和长度和任意定制化。 6、 保证添加的数据绝对正确、绝对真实。 7、 后期可任意定制化项目的存储过程。 比Data...
利用存储过程生成报表,可以灵活的按照自己的需求设计报表,通过传递参数,按照自己想要的查询条件生成符合要求的报表
根据当天日期生成流水单号存储过程 格式为 年月日+'0001'
数据库存储过程生成代码类工具:用于将存储过程生成 C# 代码