我想帮助编写以下内容:
我有SQL Server 2008 sproc,它接受两个整数值(@ ID1和@ ID2)和一个数据表/ TVP。
TVP表包含几个字段,即。标题和说明。
我想遍历TVP表并检查我的数据表tbl_Items中是否已存在Title或Description,其中@ ID1 = tbl_Items.ID1和@ ID2 = tbl_Items.ID2。
如果两者都不存在,则将@ ID1和ID2以及该TVP行的值插入tbl_Items。
感谢。
答案 0 :(得分: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)
答案 1 :(得分: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)