Ze skladni wynika że to tsql, więc rozwiazanie @superdurszlak jest najbardziej intuicyjne: day(GETDATE())=1
dla mnie jednak cały ten if jest niepotrzebny:
DECLARE @d int;
DECLARE @data DATE;
SET @data = CONVERT(DATE,GETDATE());
SET @d = day(@data)
BEGIN TRY
BEGIN TRANSACTION
-- Wstawiamy sprzdaż za poprzedni miesiąc. Ograniczenie zakresu dat w WIDOKU.
INSERT dbo.HANDEL_MSC (TWR_NUMER,TWR_NAZWA,KTR_NUMER,KTR_NAZWA,DOKUMENT,SPRZ_DATA_SPRZ,ILOSC,WARTOSC,NETTO,SLJM_KOD)
SELECT
dbo.VG_SPRZEDAZ_HURT.TWR_NUMER,
dbo.VG_SPRZEDAZ_HURT.TWR_NAZWA,
dbo.VG_SPRZEDAZ_HURT.KTR_NUMER,
dbo.VG_SPRZEDAZ_HURT.KTR_NAZWA,
dbo.VG_SPRZEDAZ_HURT.DOKUMENT,
dbo.VG_SPRZEDAZ_HURT.SPRZ_DATA_SPRZ,
dbo.VG_SPRZEDAZ_HURT.ILOSC,
dbo.VG_SPRZEDAZ_HURT.WARTOSC,
dbo.VG_SPRZEDAZ_HURT.NETTO,
dbo.VG_SPRZEDAZ_HURT.SLJM_KOD
FROM
dbo.VG_SPRZEDAZ_HURT
WHERE
@d=1
-- Kopiuje dane CENY z tabeli TEMP do MSC.
INSERT INTO dbo.CENY_HANDEL_MH(INDEKS,NAZWA,CENA,DATA)
SELECT DISTINCT
dbo.CENY_HANDEL_TEMP.INDEKS,
dbo.CENY_HANDEL_TEMP.NAZWA,
dbo.CENY_HANDEL_TEMP.CENA,
dbo.CENY_HANDEL_TEMP.[INSERT]
FROM
dbo.CENY_HANDEL_TEMP
INNER JOIN dbo.HANDEL_MSC ON (dbo.CENY_HANDEL_TEMP.INDEKS = dbo.HANDEL_MSC.TWR_NUMER)
WHERE
dbo.CENY_HANDEL_TEMP.[INSERT] < @data
AND @D=1
-- Kasujemy tabelę tymczasową CEN.
DELETE dbo.CENY_HANDEL_TEMP
WHERE
(@d=1)
or (@d>1 and dbo.CENY_HANDEL_TEMP.[INSERT] = @data);
-- Wstawiamy dane do tabeli.
INSERT INTO dbo.CENY_HANDEL_TEMP (INDEKS,NAZWA,CENA,DATA)
SELECT
dbo.VG_HANDEL_ANALIZA_MH.INDES,
dbo.VG_HANDEL_ANALIZA_MH.NAZWA,
dbo.VG_HANDEL_ANALIZA_MH.CENA,
dbo.VG_HANDEL_ANALIZA_MH.DATA
FROM
dbo.VG_HANDEL_ANALIZA_MH;
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
-- Te linie służą do rejestracji błedów procedur.
INSERT INTO dbo.PROCEDURE_ERROR (ErrorNumber, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine, ErrorMessage)
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_SEVERITY() AS ErrorSeverity,
ERROR_STATE() AS ErrorState,
ERROR_PROCEDURE() AS ErrorProcedure,
ERROR_LINE() AS ErrorLine,
ERROR_MESSAGE() AS ErrorMessage
END CATCH