0

次のsprocの作成についてサポートが必要です。

2つの整数値(@ID1と@ID2)とデータテーブル/TVPを受け入れるSQLServer2008sprocがあります。

TVPテーブルには、いくつかのフィールドが含まれています。タイトルと説明。

TVPテーブルを反復処理して、タイトルまたは説明がデータテーブルtbl_Itemsにすでに存在するかどうかを確認します。ここで、@ ID1=tbl_Items.ID1および@ID2=tbl_Items.ID2です。

どちらも存在しない場合は、@ ID1とID2の値、およびそのTVP行をtbl_Itemsに挿入します。

ありがとう。

4

2 に答える 2

1

このようなもの?

INSERT INTO tbl_Items (ID1, ID2, Title, Description)
  SELECT
    @ID1, @ID2, TVP.Title, TVP.Description
  FROM
    @TVP AS TVP
  WHERE
    NOT EXISTS (SELECT * FROM tbl_Items AS I WHERE TVP.Title = I.Title AND TVP.Description = I.Description)
于 2011-05-12T23:24:55.063 に答える
0

要件はやや不明確に見えますが、使用できるはずですMERGE

;WITH Target As
(
SELECT * 
FROM tbl_Items 
WHERE ID1=@ID1 AND ID2=@ID2
)
MERGE 
    INTO Target
    USING @TVP AS Source
    ON Target.Title = Source.Title OR Target.Description = Source.Description
    WHEN NOT MATCHED 
        THEN INSERT  (ID1, ID2, Title, Description) 
              VALUES (@ID1, @ID2, Title, Description)
于 2011-05-12T23:43:35.827 に答える