SQL主键Code字符串拼接
1 set ANSI_NULLS ON
2 set QUOTED_IDENTIFIER ON
3 GO
4 -- ================================================
5 -- Proc Function : 拼接字符串主键
6 -- Create Date : 2012-02-07
7 -- Update Date : 2012-02-08
8 -- Create User :zhangpan
9 -- Update User :
10 -- Description : 拼接字符串主键--如ZP2012020700001
11 -- Parameter :@Str 前缀-如ZP
12 -- @tableName 操作的表名称
13 -- @primaryName 表字段名称
14 -- ================================================
15 ALTER PROCEDURE [dbo].[Proc_GetPrimaryKey]
16 @str VARCHAR(4),
17 @tableName VARCHAR(50),
18 @primaryName VARCHAR(50)
19 AS
20 BEGIN
21 --获取上一个数字
22 DECLARE @sql VARCHAR(2000);
23 DECLARE @rightNum INT;
24 DECLARE @NumStr VARCHAR(15);
25 --创建临时表,存储取出的值
26 CREATE TABLE #Tmp(
27 id VARCHAR(15)
28 )
29 --插入临时表
30 SET @sql = 'INSERT INTO #Tmp SELECT top 1 '+@primaryName+' FROM '
31 +@tableName+' ORDER BY '+@primaryName+' DESC'
32 exec (@sql);
33 --设置字符串
34 SET @NumStr = (SELECT TOP 1 id FROM #Tmp);
35 IF @NumStr IS NULL OR @NumStr =''
36 BEGIN
37 SET @NumStr = @str+CONVERT(VARCHAR(8),GETDATE(),112)+'00000'
38 END
39 DROP TABLE #tmp;
40 PRINT @NumStr;
41 --截取最后的数值信息
42 SET @rightNum = SUBSTRING(@NumStr,11,5);
43
44 SELECT (@str+CONVERT(VARCHAR(8),GETDATE(),112)+RIGHT('0000'+CONVERT(VARCHAR(5),@rightNum+1),5)) primaryKey;
45
46 END
47 GO
48
49
50 --EXEC [Proc_GetPrimaryKey] 'AC','jdzx_union_Cemetery_Area','area_code'
2 set QUOTED_IDENTIFIER ON
3 GO
4 -- ================================================
5 -- Proc Function : 拼接字符串主键
6 -- Create Date : 2012-02-07
7 -- Update Date : 2012-02-08
8 -- Create User :zhangpan
9 -- Update User :
10 -- Description : 拼接字符串主键--如ZP2012020700001
11 -- Parameter :@Str 前缀-如ZP
12 -- @tableName 操作的表名称
13 -- @primaryName 表字段名称
14 -- ================================================
15 ALTER PROCEDURE [dbo].[Proc_GetPrimaryKey]
16 @str VARCHAR(4),
17 @tableName VARCHAR(50),
18 @primaryName VARCHAR(50)
19 AS
20 BEGIN
21 --获取上一个数字
22 DECLARE @sql VARCHAR(2000);
23 DECLARE @rightNum INT;
24 DECLARE @NumStr VARCHAR(15);
25 --创建临时表,存储取出的值
26 CREATE TABLE #Tmp(
27 id VARCHAR(15)
28 )
29 --插入临时表
30 SET @sql = 'INSERT INTO #Tmp SELECT top 1 '+@primaryName+' FROM '
31 +@tableName+' ORDER BY '+@primaryName+' DESC'
32 exec (@sql);
33 --设置字符串
34 SET @NumStr = (SELECT TOP 1 id FROM #Tmp);
35 IF @NumStr IS NULL OR @NumStr =''
36 BEGIN
37 SET @NumStr = @str+CONVERT(VARCHAR(8),GETDATE(),112)+'00000'
38 END
39 DROP TABLE #tmp;
40 PRINT @NumStr;
41 --截取最后的数值信息
42 SET @rightNum = SUBSTRING(@NumStr,11,5);
43
44 SELECT (@str+CONVERT(VARCHAR(8),GETDATE(),112)+RIGHT('0000'+CONVERT(VARCHAR(5),@rightNum+1),5)) primaryKey;
45
46 END
47 GO
48
49
50 --EXEC [Proc_GetPrimaryKey] 'AC','jdzx_union_Cemetery_Area','area_code'
在编程的道路上,一往无前,埋头狂奔。
[奔跑的人生] | [segmentfault] | [spring4all] | [csdn] | [掘金] | [OSChina] | [简书] | [知乎] | [51CTO]
[奔跑的人生] | [segmentfault] | [spring4all] | [csdn] | [掘金] | [OSChina] | [简书] | [知乎] | [51CTO]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?