Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como inserir dados se não estiver entre no sql server 2008?


O melhor seria evitar gatilhos e verificar se existe antes de inserir
IF NOT EXISTS (SELECT TOP 1 1 FROM MyTable WHERE @InsertedEndDate > begin_date AND @InsertedBeginDate < end_date)
BEGIN
    --do actual insert/work
END

É uma verificação simples para encontrar a primeira sobreposição. O Select TOP 1 1 é um truque para evitar realmente buscar os dados, ele retornará assim que corresponder a uma linha que se sobreponha ao intervalo de datas que você está realmente tentando salvar