我正在使用SQL Server 2012 Express。我创建了下表
CREATE TABLE [dbo].[logis_location]
( [loc_id] int identity NOT NULL
, [loc_name] varchar(50) NOT NULL )
CREATE TABLE [dbo].[rev_bill]
( [bill_id] int identity NOT NULL ,
[loc_id] int NOT NULL )
ALTER TABLE [dbo].[rev_bill]
ADD CONSTRAINT [rev_bill_PK] PRIMARY KEY CLUSTERED ( [bill_id] , [loc_id] )
ALTER TABLE [dbo].[rev_bill] WITH CHECK
ADD CONSTRAINT [logis_location_rev_bill_FK1]
FOREIGN KEY ( [loc_id] )
bill_id是自动递增的,但是bill表具有基于位置表loc_id的复合键,它是外键。 这导致以下输出
bill_id loc_id
1 1
2 1
3 2
4 2
5 1
6 3
7 2
然而预期的结果是
bill_id loc_id
1 1
2 1
1 2
2 2
3 1
1 3
3 2
我想以最安全的方式增加特定位置的bill_id。这意味着在插入新账单时,应该增加账单ID,但考虑到loc_id。如上所述,如果有给定位置的账单(例如: loc_id = 4),该位置的第一个账单应该有bill_id 1,下一个应该是2.这是客户要求。 请给我一些指导。