SQL Server 2008 R2 を使用しています。
依存 ID として説明する機能を探しています。
例で説明します。
次のようなテーブルを考えてみましょう:
脚本
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
(ここでサンプルテーブルをフォーマットする方法の秘密を誰か教えてもらえますか?)
次のように、依存する ID 列を宣言できるようになりたいと思います。
ItemID [int] Identity(RoomID,1,1) NOT NULL
の新しい行は、 where =[Rooms]
の最大値のテストをトリガーし、1 を追加する必要があります。ItemID
RoomID
@roomID
使用の変更で更新する代わりに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
それで、そのような機能はありますか?
おそらく何もない場合、特定のテーブル、親列、および依存 ID 列を指定して、次の依存 ID を自動的に設定するようにサーバーをプログラムできますか?