tabla - modificar base de datos sql
Declaración de existencia de múltiples columnas (2)
Su mejor opción es usar una instrucción de inserción con una subconsulta. Algo como esto:
Insertar SQL en w / Subquery - Comprobar si no existe
Editar: si todavía estás atascado, prueba esto--
INSERT INTO #T (Name, Unit, Id)
SELECT Name, Unit, Id
FROM #T1
WHERE
NOT EXISTS (SELECT Name, Unit, Id FROM #T
WHERE #T.Name = #T1.Name AND #T.Unit = #T1.Unit AND #T.Id = #T1.Id)
Estoy tratando de insertar datos en una tabla desde otra donde los datos aún no existen
La tabla en la que estoy insertando los datos en
CREATE TABLE #T(Name VARCHAR(10),Unit INT, Id INT)
INSERT INTO #T
VALUES(''AAA'',10,100),(''AAB'',11,102),(''AAC'',12,130)
La tabla de la que estoy seleccionando los datos
CREATE TABLE #T1(Name VARCHAR(10),TypeId INT,Unit INT, Id INT)
INSERT INTO #T1
VALUES(''AAA'',3,10,100),(''AAA'',3,10,106)
En este caso, quiero seleccionar (''AAA'',3,10,106)
desde # T1 porque la combinación AAA, 106 no existe en #T
Básicamente, lo que quiero es llenar una combinación única de Nombre y Id.
Intenté a continuación, lo cual no parece funcionar
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT * FROM #T)
Tienes que correlacionar de alguna manera las dos tablas:
SELECT *
FROM #T1
WHERE NOT EXISTS(SELECT *
FROM #T
WHERE #T1.Name = #T.Name AND #T1.ID = #T.ID)
La consulta anterior básicamente dice: consígueme esos registros de la tabla #T1
que no tienen un registro relacionado en #T
tienen los mismos valores de Name
e ID
.