我使用SQL Server 2008 R2。
我在寻找我形容为依赖的身份特征。
我将通过一个例子来说明。
考虑这样一个表:
脚本
CREATE TABLE [dbo].[Rooms](
[RoomID] [int] NOT NULL,
[ItemID] [int] NOT NULL,
[ItemDescription] [nvarchar] (250))
GO
数据:
RoomID ItemID ItemDescription
------ ------ ---------------
7 1 Door
7 2 Window (West)
7 3 Window (North)
8 1 Door
8 2 Table #1
8 3 Table #2
7 4 Table #1
8 4 Chair #1
7 5 Table #2
7 6 Table #3
8 5 Chair #2
(谁能告诉秘密这里怎么形式的例表?)
我会喜欢能够申报相关的标识列如下:
ItemID [int] Identity(RoomID,1,1) NOT NULL
在一个新行[Rooms]
应该触发测试的最大值ItemID
其中RoomID
= @roomID
并添加1。
相反的,在一个变化更新RoomID
使用删除和插入所需的数据。
现在我做的编程是这样的:
DECLARE @roomID INT
SET @roomID = 7
INSERT INTO [Allocation].[dbo].[Rooms]
([RoomID], [ItemID], [ItemDescription]) VALUES (@roomID,
(SELECT max([ItemID])+1 FROM [Allocation].[dbo].[Rooms] WHERE [RoomID]=@roomID)
,'Chair #1')
GO
那么,有没有这样的功能?
在可能的情况下是没有的,我可以编程设定下一个依赖的身份自动为我的服务器上,提供一个表,父列和相关标识列?