sql-Actualizar múltiples filas en una columna con diferentes valores de un dapper de lista

dapper sql-server

Pregunta

Tengo una tabla de asignación ProjectTable y ProjectMaterial. Cada proyecto puede tener múltiples materiales diferentes asociados.

ex;

 ProjectmaterialId   ProjectId   MaterialCode
      1                 4118      A
      2                 2135      B
      3                 4118      B
       ......

¿Cómo puedo actualizar todo el código de material de un proyecto específico de una lista de valores? Quiero que el resultado sea algo así como:

ProjectmaterialId   ProjectId   MaterialCode
      1                 4118      c
      2                 2135      B
      3                 4118      D
       ......

cuando se dio cuenta de que actualicé el ID de proyecto 4118 de una lista que tenía valores c, D en él ... Recibo la lista de valores de lo que el usuario actualizó en la Vista y necesito hacer esta consulta sql para actualizar la base de datos usando apuesto .

Gracias por adelantado.

Respuesta popular

Espero que te ayude

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 


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué