当前位置: 首页 > news >正文

SQL Server数据库中用存储过程来取顺序号

SQL Server数据库中用存储过程来取顺序号

表sys_number,字段name字符,表示前缀,value数字,一个一个递增

存储过程代码:

 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[usp_GetSysid]
        @name varchar(50),
        @initvalue int,
        @id int output
as 

/*===获取各种编号====*/
--开始事务
begin tran tr
--判断是否存在
if not exists(select * from sys_number where name=@name )
    begin
        insert into Sys_Number(name,value) values(@name,@initvalue)
    end
--取值
select @id=value from sys_number with(XLOCK) where name=@name 
if @id<@initvalue set @id=@initvalue
--更新值
update sys_number set value=@id+1 where name=@name --and value=@id

--提交事务
if @@error!=0 
begin
    rollback tran tr
    select 0
end
else
begin
    commit tran tr
    select @id
end

使用:

DECLARE    @return_value int,
        @id int

EXEC    @return_value = [dbo].[usp_GetSysid]
        @name = N'GH20250304', --前缀
        @initvalue = 1,  --初始值
        @id = @id OUTPUT  --返回顺序号,前台程序可以拼接上name

相关文章:

  • Mybatis实现批量添加
  • rust学习笔记11-集合349. 两个数组的交集
  • FreeRTOS系列---程序正常,但任务无法创建
  • Qt之QGraphicsView图像操作
  • C语言--快速排序和归并排序
  • 【回溯】216. 组合总和 III
  • 大模型Agent:人工智能的崭新形态与未来愿景
  • DICOM服务中的C-STORE、 C-FIND、C-MOVE、C-GET、Worklist
  • 一文讲清楚自我学习和深度学习
  • 通过微步API接口对单个IP进行查询
  • postman请求后端接受List集合对象
  • IDEA中Git版本回退终极指南:Reset与Revert双方案详解
  • GIt分支合并
  • PHP 包含(Include)机制详解
  • 向量数据库Chroma的介绍
  • MySQL-高级查询
  • 36-Openwrt wifi命令工具iwconfig、iwinfo、iwpriv、iwlist
  • LeetCode hot 100—环形链表 II
  • Qt中txt文件输出为PDF格式
  • 嵌入式学习-EXTI外部中断
  • 三站合一的网站怎么做/理发培训专业学校
  • 怎么购买域名自己做网站/头条关键词排名查询
  • 和幼女做视频网站/百度网络推广怎么做
  • 建设网站天下/安卓优化大师app下载
  • 网站编辑楼盘详情页怎么做/引流推广公司
  • 主机网站/石家庄seo排名外包