sql-server - 如何从 sql 中的用户定义表类型更新数据
问题描述
Update details
set details.a=a, details.b=b
where Id=10 select a,b from @userdefinedtabletype
这里 id 对于所有记录都是唯一的
解决方案
由于您没有提供关于其中任何一个表的详细信息,我将假设您的用户定义表中只有一行。否则,您将获得查询返回的最后一个值。
所以我会使用 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
推荐阅读
- java - 将 pom 转换为 gradle 以进行 Spring Boot
- javascript - 有没有办法用 jQuery 切换提交按钮的行为?(例如显示/隐藏/提交)
- node.js - Heroku Node js - 局部变量的持久性
- next.js - 为 Nextjs 动态路由添加前缀
- java - 黄瓜命令行
- angular - 输出不发出事件
- c# - 如何在 Entity Framework Core 中禁用 MemoryCache?
- python - 弹丸不会变成图像错误如何修复?
- c++ - 在文件c ++中查找并删除整行
- python - 如何在 Appium Python 中找到已知子元素的父元素?