Hallo zusammen,
folgende Anforderung
Schreiben einer LOG-Datei z.B. eine INSERT_ERROR.txt in das Verzeichnis c:\Import\ERROR\ wenn irgendetwas den INSERT-Vorgang abbricht!
Script: (Import.csv)
Sorry, wollt in als CODE-darstellen, kommt aber nur sch... raus!
----------------------------------------------------------------------------------
set language deutsch
USE [Rechnungen]
GO
SET ANSI_NULLS
ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Import der Daten aus der CSV-Datei
bulk insert dbo.tblImport from 'c:\import\Rechnungen.csv'
go
-- hinzufgen der "MARKER"-Spalte
ALTER TABLE tblImport ADD MARKER Int
Go
-- fieldseperator = ;
WITH (fieldterminator = ';',DATAFILETYPE = 'char' , rowterminator = '\n', FIRSTROW = 2, ERRORFILE = 'c:\Import\ERROR\Import_log.txt')
go
-- deklarieren
der Variablen
DECLARE @RechnungsNummer nvarchar(20);
DECLARE @RechnunsDatum nvachar(50);
While (SELECT count (*) FROM tblImport) > 0
Begin
-- ersten Datensatz der Import-Tabelle markieren
update top (1) tblRechnungen set MARKER = 1
-- setzen der Variablen
SET @RechnungsNummer = (select RechnungsNummer from tblImport where MARKER = 1)
SET @RechnunsDatum= (select RechnungsDatum from tblImport where MARKER = 1)
-- Insertvorgang
INSERT INTO dbo.tblRechnungen (ReNummer, ReDatum)
VALUES (@RechnungsNummer, @RechnunsDatum)
- Importierte Zeile lschen
DELETE FROM tblRechnungen where MARKER = 1
End
ALTER TABLE tblImport DROP COLUMN MARKER
go
------------------------------------------------------------------
Dieser Script wird jede Stunde durch eine Import.bat angestoßen:
Inhalt:
sqlcmd -S Datastore -U sa -P [bleibtgeheim] -i "C:\Schnittstelle\scripts\IMPORT.sql"
Ich hoffe, dass ich die Anforderung klar gestellt und beschrieben habe und mir jemand dabei behilflich sein kann, das Problem zu lösen!
Vielen Dank im Voraus!
da Hartl