Я невежественен с новым требованием.Честно говоря, я еще ничего не кодировал, поэтому прошу вас помочь мне только с логикой.
У меня есть большая таблица, используемая для отчетов, в которой содержатся данные рабочих и в какие периоды онисработало (так что у нас может быть много ID01 John Doe Working From X to Y in Z
), эта таблица постоянно обновляется тем, кто знает, кто, но никто не проверяет обновленные данные (потому что иногда John Doe
работал на самом деле из X1 to Y2
вместо X to Y
), поэтомуТребование это обнаружение дубликатов в этой таблице.Пока что я не нашел ничего дублированного, но я должен быть на шаг впереди этого парня.Хорошо, сделайте триггер после вставки, вы могли бы сказать, и я сделал!Предлагая решение моему боссу, он сразу не понравился, потому что он (в настоящее время) хочет работать с хранимой процедурой в текущей таблице, чтобы мы могли изучить случаи, когда вставки совпадают со старыми записями, поэтому мне нужно будет сделать то, что онхочу, я думаю.
В любом случае, вот триггер, если введена дублирующаяся строка, она изменяет старое значение на 0 в VALIDO, столбце, который я создал, чтобы сделать что-то похожее на новых вставках (триггер ниже не работаетправильно tho):
AS
IF EXISTS(
SELECT 1
FROM tstSolap t
INNER JOIN INSERTED i
ON t.ID_HR = i.ID_HR AND t.PERPRO = i.PERPRO
)
BEGIN
PRINT 'duplicado'
UPDATE tstSolap SET valido = 0
END
ELSE
BEGIN
UPDATE tstSolap SET valido = 1
END
Тогда у меня вопрос, как я могу обнаружить логически дублированные строки на основе нескольких критериев и задать один специальный столбец с новым идентификатором?(так что легче определить вручную)