sql-update使用列表中的不同值更新列中的多个行dapper
问题描述:
我有一个ProjectTable和一个ProjectMaterial映射表。每个项目可以有多个与其相关的不同材料。sql-update使用列表中的不同值更新列中的多个行dapper
ex;
ProjectmaterialId ProjectId MaterialCode
1 4118 A
2 2135 B
3 4118 B
......
如何从一个值列表更新一个特定项目的所有MaterialCode? 我想要的结果应该是这样的:
ProjectmaterialId ProjectId MaterialCode
1 4118 c
2 2135 B
3 4118 D
......
你意识到我从在它有C,d值的列表更新专案编号4118 ... 我收到值从用户什么列表在View上更新,我需要使用这个sql查询来使用dapper更新数据库。
在此先感谢。
答
我希望它能帮助你
DECLARE @ProjectTable TABLE(ProjectmaterialId INT , ProjectId INT, MaterialCode VARCHAR(2))
INSERT INTO @ProjectTable
SELECT 1, 4118, 'A' union all
SELECT 2, 2135, 'B' union all
SELECT 3, 4118, 'B'
DECLARE @ProjectMaterial TABLE(ProjectmaterialId INT , ProjectId INT, MaterialCode VARCHAR(2))
INSERT INTO @ProjectMaterial
SELECT 1, 4118 , 'C' union all
SELECT 2, 2135 , 'B' union all
SELECT 3, 4118 , 'D'
SELECT * from @ProjectTable
SELECT * from @ProjectMaterial
UPDATE A
SET MaterialCode=B.MaterialCode
FROM @ProjectTable A
INNER JOIN @ProjectTable B
ON A.ProjectmaterialId=B.ProjectmaterialId
SELECT * FROM @ProjectMaterial
谢谢回答。你能解释一点,因为我对sql很陌生,而且我不太明白你想做什么。谢谢。 – BYG
我想要更新ProjectMaterial表的MaterialTable MaterialCode列MaterialCode列 – 2017-05-09 09:51:13
此外,我从哪里取值的列表是从几个表中取得的字符串列表,我将它填充到属性中在Dapper中的Project类...我想根据Project.Sources的值来更新数据库,这是一个字符串列表... – BYG