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 
+0

谢谢回答。你能解释一点,因为我对sql很陌生,而且我不太明白你想做什么。谢谢。 – BYG

+0

我想要更新ProjectMaterial表的MaterialTable MaterialCode列MaterialCode列 – 2017-05-09 09:51:13

+0

此外,我从哪里取值的列表是从几个表中取得的字符串列表,我将它填充到属性中在Dapper中的Project类...我想根据Project.Sources的值来更新数据库,这是一个字符串列表... – BYG