Tengo un procedimiento almacenado como este:
SET NOCOUNT ON;
BEGIN TRAN;
INSERT INTO [TaskNotification] (TaskId, EmpKey)
SELECT
TaskId, E.EmpKey
FROM
@TaskNotificationTableType TNT
INNER JOIN
Employee E ON E.EmpGuid = TNT.EmpGuid;
COMMIT TRAN
Quiero saber cómo puedo verificar si el E.EmpKey
valor de mi columna existe antes de insertar el valor, por ejemplo
IF (E.EmpKey EXISTS)
// DO NOTHING
ELSE
INSERT INTO [TaskNotification] (TaskId, EmpKey)
SELECT
TaskId, E.EmpKey
FROM
@TaskNotificationTableType TNT
INNER JOIN
Employee E ON E.EmpGuid = TNT.EmpGuid;
¿Cómo puedo lograrlo? Saludos
Si quiere decir que EmpKey
no tiene que ser NULL, Employee
entonces el filtrado WHERE
será suficiente.
INSERT INTO [TaskNotification] (TaskId, EmpKey)
SELECT
TaskId, E.EmpKey
FROM
@TaskNotificationTableType TNT
INNER JOIN
Employee E ON E.EmpGuid = TNT.EmpGuid
WHERE
E.EmpKey IS NOT NULL;
Si quiere decir que no desea insertar un registro TaskNotification
si ya existe, utilice WHERE NOT EXISTS
.
INSERT INTO [TaskNotification] (TaskId, EmpKey)
SELECT
TaskId, E.EmpKey
FROM
@TaskNotificationTableType TNT
INNER JOIN
Employee E ON E.EmpGuid = TNT.EmpGuid
WHERE
NOT EXISTS (SELECT 'not in TaskNotification yet' FROM [TaskNotification] T
WHERE T.EmpKey = E.EmpKey)
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras