如何从sql中的用户定义表类型更新数据

时间:2018-11-13 11:06:08

标签: sql-server

Update details 
  set details.a=a, details.b=b 
where Id=10 select a,b from @userdefinedtabletype

此ID对于所有记录都是唯一的

1 个答案:

答案 0 :(得分:0)

由于您没有提供任何有关表的详细信息,因此我假设您的用户定义表仅包含一行。否则,您将获得查询返回的最后一个值。

所以我将使用CROSS APPLY进行更新,例如:

Update details 
  set details.a=t2.a, details.b=t2.b 
from details t1
CROSS APPLY (select a,b from @userdefinedtabletype) t2
where t1.Id=10 

如果实际上这些表是通过某种ID关联的,那么您可能希望进行INNER JOIN:

Update details 
  set details.a=t2.a, details.b=t2.b 
from details t1
INNER JOIN @userdefinedtabletype t2 on t1.id = t2.id
where t1.Id=10