Sql server sql使用不同于列表的值更新列中的多行
我有一个ProjectTable和一个ProjectMaterial映射表。每个项目可以有多个与之关联的不同材质 前 如何从值列表中更新一个特定项目中的所有MaterialCode? 我希望结果应该是这样的:Sql server sql使用不同于列表的值更新列中的多行,sql-server,dapper,Sql Server,Dapper,我有一个ProjectTable和一个ProjectMaterial映射表。每个项目可以有多个与之关联的不同材质 前 如何从值列表中更新一个特定项目中的所有MaterialCode? 我希望结果应该是这样的: ProjectmaterialId ProjectId MaterialCode 1 4118 c 2 2135 B 3 4118
ProjectmaterialId ProjectId MaterialCode
1 4118 c
2 2135 B
3 4118 D
......
正如您所意识到的,我从一个包含c,D值的列表中更新了projectId 4118。。。
我正在从用户在视图上更新的内容接收值列表,我需要进行此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非常陌生,我不太明白你想做什么。谢谢。我认为您想用ProjectMaterialCode表MaterialCode列更新ProjectTable MaterialCode列。另外,我从中获取值的列表是从几个表中一起获取的字符串列表,我正在将其填充到dapper中项目类的属性中。。。我想根据Project.Sources的值更新数据库,这是一个字符串列表…不,我想根据用户在前端为特定项目更新的值更新ProjectMaterial表。我得到一份材料清单。
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