ciao,
un'idea potrebbe essere questa:
# crei una funzione che date 2 date parametro restituisca una tabella con tutte le date comprese in tale intervallo
# a questo punto puoi usare tale funzione come se fosse una tabella da confrontare con la tabella nella quale vai ad inserire le tue righe
ed estrarti le date non valorizzate..
esempio di quella che potrebbe essere la funzione da definire:
CREATE FUNCTION fn_Period
( @from datetime, @to datetime )
RETURNS @tb_period TABLE (data datetime)
AS
BEGIN
declare @i int
declare @d datetime
SET @i = 0
SET @d = @from
WHILE (@d <= @to) BEGIN
insert into @tb_period(data) values(@d)
set @d = @d + 1
END
RETURN
END
GO
esempio di utilizzo
declare @d1 datetime
declare @d2 datetime
set @d1 = convert(datetime, '01/01/2010', 103)
set @d2 = convert(datetime, '15/01/2010', 103)
select * from dbo.fn_Period(@d1, @d2)
oppure, per quello che vorresti ottenere..
declare @d1 datetime
declare @d2 datetime
set @d1 = convert(datetime, '01/01/2010', 103)
set @d2 = convert(datetime, '15/01/2010', 103)
select * from dbo.fn_Period(@d1, @d2) a
where not exists
(select 1 from tuaTabella b
where b.data = a.data)
Michele