首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在插入记录之前迭代TVP?

在插入记录之前迭代TVP?
EN

Stack Overflow用户
提问于 2011-05-13 07:18:54
回答 2查看 1.1K关注 0票数 0

我需要一些帮助来编写下面的存储过程:

我有一个SQL Server2008存储过程,它接受两个整数值(@ID1和@ID2)和一个数据表/TVP。

TVP表包含几个字段,即。标题和描述。

我想遍历TVP表并检查标题或描述是否已经存在于我的数据表tbl_Items中,其中@ID1 = tbl_Items.ID1和@ID2 = tbl_Items.ID2。

如果两者都不存在,则将@ID1和ID2的值以及该TVP行插入到tbl_Items中。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-13 07:24:55

像这样的东西?

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-05-13 07:43:36

这个需求看起来有些模糊,但您应该能够使用MERGE

代码语言:javascript
复制
;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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5985620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档