SQL";除「;还有问题吗

SQL";除「;还有问题吗,sql,sql-server,Sql,Sql Server,我有一个查询引擎历史数据的SQL数据库。其中一个特性是,存储过程每天都会搜索特定事件的所有数据,如果找到该事件,则会将其插入到新表中 问题是这些数据必须是唯一的 表格标题如下: ID / ID_Location / IDDown / IDUp / DtDown / DtUp / TimeDifference / IsExempt / Reason / Details / OrigDtUp SQL查询是: insert into exempts(ID_Location, iddown, idu

我有一个查询引擎历史数据的SQL数据库。其中一个特性是,存储过程每天都会搜索特定事件的所有数据,如果找到该事件,则会将其插入到新表中

问题是这些数据必须是唯一的

表格标题如下:

ID / ID_Location / IDDown / IDUp / DtDown / DtUp / TimeDifference / IsExempt / Reason / Details / OrigDtUp 
SQL查询是:

insert into exempts(ID_Location, iddown, idup, dtdown, dtup, timedifference) 
select ID_Location, iddown, idup, dtdown, dtup, DATEDIFF(MINUTE, dtdown, dtup) as timedifference 
from @tmptbl 
except 
select ID_Location, iddown, idup, dtdown, dtup, timedifference from exempts 
用户可以对其中一些值进行调整,例如DtUp(发动机重新联机的时间)。更改DtUp值后,原始DtUp值存储在OrigDtUp字段中,并根据DtDown和DtUp时间变化更新时差

所以我真正需要的是:

insert into exempts(ID_Location, iddown, idup, dtdown, dtup, timedifference) 
select ID_Location, iddown, idup, dtdown, dtup, DATEDIFF(MINUTE, dtdown, dtup) as timedifference 
from @tmptbl 
except 
select ID_Location, iddown, idup OR OrigDtUp, dtdown, dtup from exempts

我们知道SQL中的
except
函数不支持它???

您不能将其删除两次吗

insert into exempts(ID_Location, iddown, idup, dtdown, dtup, timedifference) 
select ID_Location, iddown, idup, dtdown, dtup, DATEDIFF(MINUTE, dtdown, dtup) as timedifference 
from tmptbl 
except 
select ID_Location, iddown, idup, dtdown, dtup 
from exempts
except 
select ID_Location, iddown, OrigDtUp, dtdown, dtup 
from exempts

完美的谢谢你的帮助!!