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'