-- =============================================
-- Author: <Author,yaoyao,Name>
-- Create date: <Create Date,20130515,>
-- Description: <Description,生成自定义ID,生成规则:1~5个字母前缀加5~10位数字>
-- =============================================
ALTER PROCEDURE [dbo].[proGetCustomID]
@TableName VARCHAR(50),
@FieldName VARCHAR(50),
@BeginChar VARCHAR(5),
@NumberLen INT=10--默认10
AS
BEGIN
IF @NumberLen<5 or @NumberLen>10 set @NumberLen=10; DECLARE @CustomID VARCHAR(10),@MaxID VARCHAR(15),@strSql NVARCHAR(200);
set @strSql='select @tempid = MAX('+@FieldName+') FROM '+@TableName;
exec sp_executesql @strSql,N'@tempid VARCHAR(15) out',@MaxID out --参数赋值
--print @MaxID; IF @MaxID IS NULL
BEGIN
SET @CustomID='';
END
ELSE
BEGIN
SET @MaxID = CONVERT(INT,REPLACE(@MaxID,@BeginChar,''));--CONVERT(INT,SUBSTRING(@MaxID,LEN(@BeginChar)+1,10));
SET @CustomID=@MaxID+1;
--print @CustomID WHILE(LEN(@CustomID)<@NumberLen)
BEGIN
SET @CustomID=''+@CustomID
END
END SELECT @BeginChar+@CustomID;
END
/// <summary>
/// 生成自定义ID
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="fieldName">生成id的字段</param>
/// <param name="beginChar">1~5位字母</param>
/// <returns></returns>
public static string CreateID(string tableName, string fieldName, string beginChar)
{
SqlParameter[] parameters = {
new SqlParameter("@TableName", SqlDbType.VarChar, 20),
new SqlParameter("@FieldName", SqlDbType.VarChar, 20),
new SqlParameter("@BeginChar", SqlDbType.VarChar,10)};
parameters[].Value = tableName;
parameters[].Value = fieldName;
parameters[].Value = beginChar;
return DbHelperSQL.GetSingleByPro("proGetCustomID", parameters).ToString();
}

sql生成数据库的序列号的更多相关文章

  1. MS SQL生成数据库字典脚本

    开发一个项目时都会有一个蛋疼的问题——写数据库需求文档,然后根据这个文档来建数据库,如果后来需求改了,要改数据库还要改文档,有时忙着忙着就忘改了,导致文档是过期的.那么我们自己写个脚本在数据库运行直接 ...

  2. PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题

    团队合作设计一套系统数据模型,创建了PDM后,Table.View.Store Procedure等都创建好了,且创建了多个Schema方便管理这些数据库对象,但Table.view.Column等对 ...

  3. VS2010 根据模型生成数据库 打开edmx.sql文件时 vs出现无响应的解决方案

    今天在VS2010 sp1+sql server 2008 R2+Win7操作系统下测试ADO.NET 实体数据模型时 ,遇到这样一个问题. 首先建好实体模型,然后"根据模型生成数据库&qu ...

  4. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?

  5. 利用PowerDesigner绘制PDM生成SQL Server数据库

    PowerDesigner是个很强大的建模工具,可以利用它绘制各种图形,本文利用该工具绘制PDM,进而生成SQL Server数据库. 比如绘制一个简单的学生选课.教师授课管理系统的PDM: pk表示 ...

  6. sql server数据库备份单个表的结构和数据生成脚本

    1.使用场景:sql server数据库备份单个表的结构和数据,在我们要修改正式系统的数据的一天或者多条某些数据时候,要执行update语句操作,安全稳健考虑,最好先做好所修改的表的结构和数据备份! ...

  7. Powerdesigner逆向工程从sql server数据库生成pdm【转】

    Powerdesigner逆向工程从sql server数据库生成pdm 第一步:打开"控制面板"中的"管理工具" 第二步:点击"管理工具" ...

  8. core 中ef 连接sql server数据库 在类库中 自动生成 model

    首先 介绍 Scaffold-DbContext "Server=.;database=sdd;User Id=sa;Password=123456;" Microsoft.Ent ...

  9. 用PowerDesign反向生成数据库Sql语句问题

            在用Pd15反向生成数据库时,生成的Sql语句在Sql Server Manager Studio里面报错,根本就执行不了.数据库用的是Sql Server 2008 R2.经过一番修 ...

随机推荐

  1. cvCreateImage

    CvCreateImage函数说明 cvCreateImage是openCV中的一个函数.OpenCV是Intel公司支持的开源计算机视觉库.   cvCreateImage:   创建头并分配数据 ...

  2. 奇葩问题 eclipse中DDMS的LOGcat只有一列level

    http://stackoverflow.com/questions/25010393/eclipse-logcat-shows-only-the-first-letter-from-each-mes ...

  3. H3C S5120清除console口密码

    1.开机启动交换机显示Press Ctrl-B to enter Extended Boot menu...0  字样迅速按Ctrl-B进入如下字符介面提示: Press Ctrl-B to ente ...

  4. [Object Tracking] Overview of algorithms for Object Tracking

    From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...

  5. 父页面操作嵌套iframe子页面的HTML标签元素

    一个页面A.html使用iframe嵌套一个页面B.html,在A页面写js操作B页面HTML元素,首先要获取到B页面document对象,才能对嵌套页面进行操作 请看一个实例,在A页面写js操作B页 ...

  6. sencha touch 入门学习资料大全(2015-12-30)

    现在sencha touch已经更新到2.4.2版本了 重新整理一下资料 官方网站:http://www.sencha.com/products/touch/ 在线文档:http://docs.sen ...

  7. Socket 服务端使用多线程实现多客户端通讯实例

    socket通信原理 Java多线程实现Socket通讯 1.服务端 import java.io.IOException; import java.net.ServerSocket; import ...

  8. B - Is It A Tree?

    来源 hdu 1325 A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...

  9. B - 取(2堆)石子游戏

    有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后把石子全部取完者为胜者. ...

  10. 学习mongoDB的网站