惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - Sanle

jquery技巧总结 在不同版本的 SQL Server 之间传输登录和密码的完整解决方案 安装iis 成大事必备的9种心态 人际关系的十大要领 IIS6.0应用程序池回收和工作进程 五种提高 SQL 性能的方法 必须掌握的八个【cmd 命令行】[ 防止项目延迟的18条军规 设计模式与武功秘籍的异曲同工 存储过程是多用还是少用 SQL有用代码 做项目就是学习 SQL大全 SOA实施的成功主要有以下8种 SOA,现在进行时 4u4gsybase配置 sybase优化处理 带你轻松接触Sybase ASE15.0.2性能优化
一个自动产生编号的存储过程,数据库sql2000或2005
Sanle · 2008-10-08 · via 博客园 - Sanle

    //示列.net调用

         /// <summary>
        /// 通过存储过程得到ID号
        /// </summary>
        /// <param name="IDName">编号名称</param>
        /// <param name="IDType">编号类型 1--关联日期如:0706040001 0--自然增长如:0003</param>
        /// <param name="IDLength">编号长度</param>
        public static string getID(string IDName, string IDType, int IDLength)
        {
            SqlConnection conn = new SqlConnection(SqlHelper.ConnStrng);
            string sRef = null;
            try
            {
                SqlCommand cmd = new SqlCommand("p_id", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter parameter = cmd.Parameters.Add("@pName", SqlDbType.VarChar, 20);
                parameter.Value = IDName;

                parameter = cmd.Parameters.Add("@pType", SqlDbType.VarChar, 20);
                parameter.Value = IDType;

                parameter = cmd.Parameters.Add("@pLeng", SqlDbType.Int);
                parameter.Value = IDLength;

                SqlParameter myPara = new SqlParameter("@pValue", SqlDbType.VarChar, 20);
                cmd.Parameters.Add(myPara);
                myPara.Direction = ParameterDirection.Output;
                conn.Open();
                cmd.ExecuteNonQuery();
                sRef = myPara.Value.ToString();
                cmd.Parameters.Clear();
            }
            catch (Exception e)
            {
                throw e;
            }
            finally
            {
                conn.Close();
            }
            return sRef;
        }

//proc code

CREATE proc p_id @pName varchar(20), @pType varchar(20),@pLeng int=10, @pValue varchar(20) out
as
declare @toDate char(6)
declare @tempDate char(6)
declare @numOrder varchar(20)
declare @str0 char(10)

set @str0 = '0000000000'
set @toDate = convert(char(6),getdate(),12) ---currently date,as so 080403

if (rtrim(ltrim(@pType))='1')
begin
     set @pValue = @toDate +left(@str0,@pLeng-7) +  '1'
end

if (rtrim(ltrim(@pType))='0')
begin
    set @pValue = left(@str0,@pLeng-1) +  '1'  
end

----check table is exists or not
if not exists (select [name] from dbo.sysobjects where name= 't_id' and type='U')
begin
 CREATE TABLE [t_id] (
 [idName] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
 [idType] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
 [idLength] [int] NULL ,
 [idValue] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
ALTER TABLE [t_id] ADD
 CONSTRAINT [PK_t_id] PRIMARY KEY  CLUSTERED
 (
  [idName]
 )  ON [PRIMARY]  
end

----check the @pName is exists or not
if (not exists (select idName from t_id where idName=@pName))
begin
  insert into t_id (idName,idType,idLength,idValue) values (@pName,@pType,@pLeng,@pValue)
               return  1   ----直接返回
end

----query idvalue
select @pValue=idValue from  t_id where idName=@pName
if (rtrim(ltrim(@pType))='1')
begin
   set @tempDate = left(ltrim(@pValue),6)
   if (@tempDate=@toDate)
        begin
              set @numOrder = convert(varchar(20),convert(int,right(@pValue,@pLeng-len(@toDate)))+1)
     set @pValue =@toDate + left(@str0,@pLeng-6-len(@numOrder)) + ltrim(rtrim(@numOrder))
       end
   else
          begin
                 set @pValue = @toDate +left(@str0,@pLeng-7) +  '1'
         end
    ----update table
end

if (rtrim(ltrim(@pType))='0')
begin
          set @numOrder = convert(varchar(20),convert(int,@pValue)+1)
          set @pValue = left(@str0,@pLeng-len(@numOrder)) +  ltrim(rtrim(@numOrder))
end

    -----update database
    update  t_id set idValue=@pValue where idName=@pName
    return 1
GO