У меня есть эта проблема в SQL Server 2008. Я создал таблицу для вставки данных, и затем пользователь сможет проверить, верны ли данные.
CREATE TABLE dbo.temp_horario2 (
idTempHorario INT IDENTITY(1,1) NOT NULL,
idEmpleado VARCHAR(500),
nroDocumento VARCHAR(500),
dia VARCHAR(500),
idHorario VARCHAR(500),
idUsuario INT
);
Мало кто из этих столбцов не долженСохраняйте значения VARCHAR, но я сделал это таким образом, чтобы пользователь мог видеть временную таблицу со всей информацией, которую он вставит (в загрузке с помощью файла CSV). Проблема в том, что при проверке значений этих столбцов с исходными значениями, которые хранятся в других таблицах, я получаю эти ошибки.
Сообщение 245, Уровень 16, Состояние 1, Ошибка строки 1Разговор с высшей доблестью 'asdf' Обозначение смол. Утилита una columna de tipo integer Mayor.
Вот проверяемые мной вставки:
INSERT INTO dbo.temp_horario2 (idEmpleado, nroDocumento, dia, idHorario, idUsuario) VALUES (12, 3224, 1, 1, 1);
INSERT INTO dbo.temp_horario2 (idEmpleado, nroDocumento, dia, idHorario, idUsuario) VALUES (2123, 10782295, 1, 1, 1);
INSERT INTO dbo.temp_horario2 (idEmpleado, nroDocumento, dia, idHorario, idUsuario) VALUES (234324234, 3232495, 34, 2, 34);
INSERT INTO dbo.temp_horario2 (idEmpleado, nroDocumento, dia, idHorario, idUsuario) VALUES ('asdf', 2, 'dsf', 'dos', 34);
И этот запрос вызывает у меня эти ошибки.
SELECT th.idTempHorario, th.idEmpleado, th.nroDocumento, th.dia, th.idHorario, th.idUsuario,
CASE
WHEN th.idEmpleado IN(SELECT rhem.idEmpleado FROM rrhh.dbo.Empleado AS rhem) THEN 1
ELSE 0
END AS validacionIdEmpleado,
CASE
WHEN th.nroDocumento IN(SELECT rhem.numTipoDocuIdent FROM rrhh.dbo.Empleado AS rhem) THEN 1
ELSE 0
END AS validacionNroDocumento,
CASE
WHEN th.dia IN(SELECT gd.idDia FROM General.dbo.dia AS gd) THEN 1
ELSE 0
END AS validacionDia,
CASE
WHEN th.idHorario IN(SELECT rhas.idHorarioAdmin FROM rrhh.asistencia.horarioAdmin AS rhas) THEN 1
ELSE 0
END AS validacionIdHorario
FROM database.dbo.temp_horario2 AS th