设计主键
你好
需要设计订单表的主键,要求是年月日+(每新单自增1)
例如 201307081 201307082,
identity(getdate(),1),这种方式可行吗?
[解决办法]
生成订单编号,可以使用一个存储过程返回,然后在这个字段上建立key,这个逻辑不是identity(getdate(),1)能够实现的,需要写一个Store procedure ,生成返回字符串。
[解决办法]
这个不是主键设计,而是主键值的问题,这个依靠sql代码去控制
[解决办法]
create table t
(
id int identity(1,1) primary key,
OrderId as replace(convert(varchar(10),getdate(),120),'-','')+right('00000000'+ltrim(id),8),
Others varchar(20)
)
go
insert t(Others)
select 'a' union all
select 'b' union all
select 'c'
go
select * from t
drop table t
/*
idOrderIdOthers
--------------------------------
12013070800000001a
22013070800000002b
32013070800000003c
*/