我有一张桌子,里面有两种类型的笔记。收款单和交货单。它们是相同的数据结构,因此使用相同的表。
CREATE TABLE Notes (
Id int IDENTITY(1,1) NOT NULL,
Type int NOT NULL,
CustomerId int NOT NULL,
-- etc
)
我正在将数据从遗留系统迁移到此表中,并且要求收货和交货单有自己的序列号。
我之前已经实现了两个序列表
CREATE TABLE CollectionNoteSequence (
Id int IDENTITY(1,1) NOT NULL,
NoteId int NOT NULL
)
其中,该Id
列是集合备注的唯一顺序 ID,然后是 NoteId 外键的 to Notes.Id
。
现在是时候进行最终(实际)数据迁移了,而且这种设置似乎很难使用。
有没有一种方法可以将两个序列表分箱并向NoteNo
Notes 表添加一个字段,以便NoteNo
根据Note.Type
? 这是复合键还是什么?
新表可能看起来像
CREATE TABLE Notes (
Id int IDENTITY(1,1) NOT NULL,
NoteNo int NOT NULL,
Type int NOT NULL,
CustomerId int NOT NULL,
-- etc
)
数据看起来像:
Id NoteNo Type CustomerId
1 4000 1 123
2 4001 1 456
3 15123 2 789
4 4002 1 753
5 15124 2 741
我正在使用 MS SQL Server 2008。