sqlserver的主键生成器

本文介绍了如何设计一个SQL Server存储过程,用于生成具有特定业务含义的主键,如包含日期和序号的采购订单编号。存储过程根据表名、日期和序号自动生成主键,并确保在日期变更时正确更新序号。
摘要由CSDN通过智能技术生成

 题目:设计主键生成存储过程

一个业务表应该有主键,对于主键的处理可以采用表的identity
列,来生成自动增长的主键。但是对于复杂的业务表,如果使用
这样的方式,那么主键的作用就太小了,我们应该让主键承担更
重要的含义。
比如:一个行的主键位15,我们不能知道这个主键值代表什么含义。
      但是如果一个主键为PO0508110004,我们就可以知道PO代表
      采购订单,0508代表2005年8月11日,0004代表当天第四号单据。

我们把前两个字母PO称为字轨,所以一个业务主键应该有以下结构:

字轨+日期+序号

请设计一个支持表以及一个存储过程来完成主键的生成;

 

参考答案:
请使用查询分析器运行

--drop table MyRecordNo

use pubs
go

/*
create table MyRecordNo(
  mrn_tablename varchar(20) not null primary key,
  mrn_sign varchar(2) null,
  mrn_lastno int not null,
  mrn_lastdate datetime not null
)

 

*/
go
--------------------------------------------------

drop PROCEDURE getBillNo 

go

CREATE PROCEDURE getBillNo  @tablename varchar(20), @billno varchar(20)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值