私はテーブルを持っていますtblCollectionGameList
CREATE TABLE dbo.tblCollectionGameList
(
ListID smallint IDENTITY(0,1) NOT NULL,
CollectionID smallint NOT NULL,
IncludedSectionID smallint NOT NULL,
CONSTRAINT PK_CollectionGameList_ListID PRIMARY KEY CLUSTERED (ListID ASC),
CONSTRAINT FK_CollectionGameList_SectionInfo FOREIGN KEY (CollectionID) REFERENCES dbo.tblSectionInfo (SectionID),
CONSTRAINT FK_CollectionGameList_SectionInfo2 FOREIGN KEY (IncludedSectionID) REFERENCES dbo.tblSectionInfo (SectionID)
)
MERGE
Web サイトから値の XML セットを渡した後、次のコマンドを実行します。
SELECT
CAST(colx.query('data(CollectionID) ') AS varchar) AS CollectionID,
CAST(colx.query('data(IncludedSectionID) ') AS varchar) AS IncludedSectionID
INTO #TEMPtblCollectionGameList
FROM @XMLTable.nodes('DocumentElement/XMLTable') AS Tabx(Colx)
MERGE dbo.tblCollectionGameList AS t
USING #TEMPtblCollectionGameList AS s
ON (t.CollectionID = s.CollectionID AND t.IncludedSectionID= s.IncludedSectionID)
WHEN NOT MATCHED BY TARGET
THEN
INSERT (CollectionID, IncludedSectionID)
VALUES (s.CollectionID, s.IncludedSectionID)
WHEN NOT MATCHED BY SOURCE
THEN
DELETE
;
これは正しく機能していません。テーブルに既存のデータ セットがある場合:
ListID CollectionID IncludedSectionID
34 86 0
35 86 1
CollecitonID
そして、古いデータを削除して新しいデータを配置する別のコレクションのWebページから新しいデータを配置しようとしました:
ListID CollectionID IncludedSectionID
38 92 10
39 92 11
Web ページが更新のために渡すMERGE
以外のアイテムに影響を与えているコードの何が問題になっていますか?CollectionID