我对新要求一无所知。老实说,我还没有编码,所以我想请您仅提供逻辑上的帮助。
我有一个用于报告的大表,其中包含来自工人的数据以及他们工作的最长时间(因此我们可以有很多ID01 John Doe Working From X to Y in Z
),该表会由谁知道谁但没有谁不断更新一个人检查更新的数据(因为有时John Doe
实际上是从X1 to Y2
而不是X to Y
开始工作的),因此要求它检测此表上的重复项。到目前为止,我还没有发现任何重复的东西,但我必须比这个家伙领先一步。好的,插入后您可能会说要触发,而我做到了!向老板提出解决方案时,他立即不喜欢它,因为他(当前)想在当前表上使用存储过程,因此我们可以研究插入与旧记录匹配的情况,因此我需要对他进行处理我想。
无论如何,这里是触发器,如果输入了重复的行,它将在VALIDO上将旧值更改为0,这是我创建的以对新插入执行类似操作的列(它下面的触发器无法正常工作):
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
然后我的问题是,如何根据多个条件检测逻辑上重复的行并使用新ID设置一个特殊列? (因此更容易手动检测)