SQL如何将表Valued Parameter连接到ID上现有表中的值

时间:2014-01-17 14:22:23

标签: sql sql-server sql-server-2008 tsql sql-server-2012

我有一个类似下面的TVP,我从我的代码

 @texts as tvpnewtext readonly

 ID    Name      Text
 1     Mike      New Text
 2     Mike      New Text
 3     Mike      New Text

它包含ID,名称和文本列。

我有一个现有的表格,用于保存我的数据库中的文本。

 ID    Name      Text
 1     John      OLD Text
 2     John      OLD Text
 3     John      OLD Text

我想将旧表更新为:

 ID    Name      Text
 1     Mike      OLD Text New Text
 2     Mike      OLD Text New Text
 3     Mike      OLD Text New Text

任何帮助。

感谢

2 个答案:

答案 0 :(得分:2)

这是你想要实现的目标吗?

UPDATE C
SET T.Text = T.Text + C.Text
FROM @texts         T
JOIN CurrentTable   C   ON T.ID = C.ID

答案 1 :(得分:2)

我相信这可以通过MERGE完成。 WHEN MATCHED BY SOURCE子句如下所示:

WHEN MATCHED THEN
UPDATE
SET S.NAME = T.NAME
,S.TEXT = S.TEXT + ' ' + T.TEXT