用存储过程获得表的自定义ID

在许多情况下对一个表里主键想采用我们定义的ID,今天把获得表ID写了个存储过程以后用到直接复制了!给大家贴出来参考下了!

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Student]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[Student]

GO

 

CREATE TABLE [dbo].[Student] (

       [StudentID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,

       [StudentName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,

       [StudentSex] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL

) ON [PRIMARY]

GO

Create  Proc GetTableId

@IdStr     VarChar(10),

@IdNumLen  Int

As

  Declare @MaxId VarChar(50),

          @MaxNum int

  Select @MaxId=Max(StudentID) From Student  where StudentID Like @IdStr +'%'

  If @MaxId Is null

     Set @MaxNum='0';

  Else

     Set @MaxNum=Cast(replace(@MaxId,@IdStr,'') as int)

  Set @MaxNum=@MaxNum+1

  Set @MaxId=Cast(@MaxNum as VarChar(10))

  While(Len(@MaxId)<@IdNumLen)

      Set @MaxId='0'+@MaxId

  Set @MaxId=@IdStr+@MaxId

Print @MaxId

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值