Jump to content

daHartl

Members
  • Gesamte Inhalte

    15
  • Registriert seit

  • Letzter Besuch

Fortschritt von daHartl

Explorer

Explorer (4/14)

  • Erste Antwort
  • Engagiert
  • Erster eigener Beitrag
  • Eine Woche dabei
  • Einen Monat dabei

Neueste Abzeichen

0

Reputation in der Community

  1. ... geht das überhaupt? Vielen Dank für die Hilfe....
  2. Hab in der Tabelle 1 Artikel und Kunde und in der Tabelle 2 eben auch... Ich möchte gerne wissen, welcher Konstellation Artikel/Kunde in beiden Tabellen vorkommt... Im Umkehrschluss halt dann eben auch noch umgekehrt, welche Konstellation Artikel / Kunde kommt nicht vor... DANKE!
  3. Hallo zusammen, wie kann ich per SQL-Script vergleichen ob die Konstellation Tabelle1 = Spalte A & Spalte B in der Tabelle 2 = Spallte 3 & Spalte 4 vorkommt? Der Inhalt sind ID`s.... Vielen Dank im Voraus. daHartl
  4. Da ich einen SQL Server 2005 Express habe, kann ich mit dem Script-Assistenten erstelle Abfragen leider nicht speichern! In einem anderen Forum hab ich jetzt die Lösung gefunden: declare @sql varchar(8000) select @sql = 'bcp "select * from Rechnungen..tblImport" queryout c:\Import\ERROR\Import_ERROR.txt -c -t; -T -S' + @@servername -- -c -t; -r\n exec Rechnungen..xp_cmdshell @SQL (Sorry aber "Code" sieht einfach sch.. aus... warum auch immer) Wichtig ist halt nur xp_cmdshell vorher zu aktivieren und dem user sysadmin - Rechte zu geben -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable the feature. EXEC sp_configure 'xp_cmdshell', 1 GO -- To update the currently configured value for this feature. RECONFIGURE GO Mehr dazu steht hier: http://msdn.microsoft.com/de-de/library/ms175046.aspx
  5. Ja, ich denke auch. Ich möchte keine externe Verarbeitung oder nachträgliche Verarbeitung, sondern einen Möglichkeit IN dem SQL-Script selbst! so z.B.. BEGIN TRY Mein Import.sql - Script END TRYBEGIN CATCH [Hier der Befehl zum Exportieren der Daten bzw. Erstellen der TXT-Datei] END CATCH
  6. Genau das ist ja meine Frage: Wie kann ich den Inhalt einer Tabelle per SQL-Befehl, also in dem BEGIN CATCH Bereich in eine TXT schreiben?
  7. 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
  8. Hab total überlesen, dass BCP ja in der "Windows-Eingabeaufforderung" ausgeführt wird :-(. Daher leider ist es leider nicht zu gebrauchen für meine Anforderung. Ich habe hier ein SQL-Script (Start per .bat) was die Daten sozusagen von einer Transfertabelle (welche in dem Skript vorher mit BULK INSERT aus einer .CSV gefüllt wird) einliest. Jetzt hatte ich den Fall, dass ein Datumsformat erwartet wurde, jedoch ein Text in einem Feld stand und das Scrip abgebrochen ist. Da das Error.log-Handling beim BULK INSERT schon vorhanden ist, habe ich mir gedacht, ob es denn möglich wäre, im Fehlerfall (per TRY CATCH) eine "Fehlerdatei" (z.B. mit dem Inhalt der Transfertabelle) zu schreiben. Die Batch-Routine würde den Fehler erkennen und entsprechend weiter verarbeiten! da Hartl
  9. sieht gut aus! Denk damit kann ich auf jeden Fall was anfangen! daHartl DANKE!
  10. Hallo zusammen, gibt es eine Möglichkeit, per SQL-Query bei einem SQL 2005 Express die Daten einer Tabelle in ein .txt-File zu schreiben? Beispiel = funktioniert leider nicht! BCP MyDatabase.MyCustomer out c:\customer.txt Falsche Syntax in der Nähe von '.'. Vielen Dank im Voraus für eure Hilfe! da Hartl
  11. Hallo zusammen, ich hab hier ein SQL-Import-Script welches Daten aus einer Transfertabelle einliest, entsprechend verarbeitet und in die Datenbank schreibt. Ist es möglich, ein LOG-File in ein Verzeichnis zu schreiben, falls irgend etwas schief läuft? z.B. wenn ein "ungültiger Datentyp" auftritt und die Verarbeitung gestoppt wird... bzw. dieser fehlerhafte Datensatz übersprungen wird. System: SQL 2005 Express daHartl vielen Dank im Voraus für eure Hilfe ;-)...
  12. DANKE für den TIPP. Insgesamt sind es acht Importtabellen die jeweils 5x pro Tag für ca. 5min genutzt werden... also somit ist sinnvoller diese bei jedem Import einfach anzulegen und dann wieder zu löschen... da Hartl
  13. Durch den BULK Import ist ja die Spaltenanzahl vorgeben. Vor der Verarbeitung der Daten wird der entsprechende Datensatz mit einer "1" in der Spalte "MARKER" markiert. Ist kein Datensatz mehr in der Tabelle, wir die Spalte "MARKER" gelöscht, damit wieder Daten aus einer CSV-Datei mit BULK importiert werden können. Macht es mehr Sinn, die Tabelle vor jedem Import komplett zu erstellen und im Anschluss zu löschen? Danke für eure Hilfe. da Hartl
  14. Hallo zusammen, ich hab hier eine Tabelle in welche ich per bulk 5x täglich die Daten importiere. Anschließend wird an diese Tabelle normalerweise per "Alter Table.. add" eine weitere Spalte "MARKER" angefügt und am Ende der Verarbeitung wieder per "ALTER Table ... DROPP" entfernt. Dies funktioniert leider seit heute nicht mehr! Es erscheint folgende Fehlermeldung: Fehler beim ändern der Tabelle, weil keine eindeutigen Spalten-IDs mehr für die 'tblImport'-Tabelle vorhanden sind. Kann ich die ID`s irgendwie zurücksetzen oder gibt es dafür eine andere Lösung? Vielen Dank für die Hilfe! da Hartl
×
×
  • Neu erstellen...