Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateiformat für MS SQL BULK INSERT

Frage Entwicklung Datenbanken

Mitglied: JKoenig

JKoenig (Level 1) - Jetzt verbinden

02.12.2011, aktualisiert 17:48 Uhr, 4421 Aufrufe, 5 Kommentare

Hallo und schönen guten Abend

Ich entwickle gerade eine Anwendung die Dateien in unterschiedlichen Formaten auf ein einheitliches Format bringen soll. Die Dateien in diesem Format sollen anschließend über ein SQL BULK INSERT in eine MS SQL Datenbank importiert werden.

Da die Dateien die ich bekomme Daten unterschiedlicher Tabellen enthalten sieht meine Ausgabe im Moment ungefär so aus:

#tb_Tabelle1
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

#tb_Tabelle2
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

#tb_Tabelle3
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

Ist ein Import über BULK INSERT in diesem Format möglich oder müsste ich für jede Tabelle eine eigene Datei erstellen?

In Hoffnung auf eine baldige Antwort wünsche ich noch einen schönen Abend

JKoenig
Mitglied: Biber
02.12.2011 um 18:36 Uhr
Moin JKoenig,

bekommst du nun Dateien (Flatfiles) oder bekommst du Tabellen aus einem Schema, einer anderen MSSQL-Instanz oder gar von einem anderem DBMS?

Und wo unterscheiden sich denn jetzt die "Formate", wie du es nennst?
Unterschiedliche Feldnamen, Feldtypen, Feldlängen, Constraints oder was?

Kannst du mal bitte ein sinnvolles typisches Beispiel für die Inhalte posten?

und was hat das alles mit BULK INSERT zu tun? Hast du keinen PK?

Grüße mit ganz vielen Fragezeichen
Biber
Bitte warten ..
Mitglied: JKoenig
03.12.2011 um 08:52 Uhr
Hallo Biber,

ich habe die ganze Situation vielleicht etwas ungünstig beschrieben

die Dateien die ich bekomme werden von mir schon umgewandelt, und meine Ausgabe welche (über BULK INSERT) in die Datenbank importiert werden soll

sieht so aus:

#tb_Tabelle1
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

#tb_Tabelle2
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

#tb_Tabelle3
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7
Feld1;Feld2;Feld3;Feld4;Feld5;Feld6;Feld7

Nun möchte ich wissen ob es möglich ist Texte in dieser Form (#<tabellenname> ... <feld>;<feld> ...) über BULK INSERT zu importieren oder ob ich für jede Tabelle eine eigene Datei anlegen muss die dann nur die Felder beinhaltet.

Grüße und hoffentlich ein paar Fragen beantwortend
JKoenig
Bitte warten ..
Mitglied: 60730
03.12.2011 um 11:43 Uhr
moin,

[OT]

also ich weiß ja nicht - aber die Frage - ob ich für jede Tabelle eine eigene Datei anlegen muss hat sich mir im täglichen Leben eher selten gestellt.
Vielmehr muß ich des öfteren Tabellen in Happen zerlegen, damit die am Stück auch wirklich sauber eingelesen werden.
Ich hab aber auch keine so kleinen 7 Spalten mal 5 Datensätze
Und dann hab ich bei der Variante eine Datei- eine Tabelle auch einen Überblick - wo es hängt
Ob wo und welche - man sieht ja keinen SQL Befehl - Tabelle mucken macht und ob oder ob nicht da vorher ein Drop läuft oder laufen muss....

Alleine die "Programmierung" - wenn dies dann Tabelle jenes - ne echt nicht..
(ja ich weiß, das es gehen könnte - aber will ich unbedingt mit Schlittschuhen auf den Mount Everest?)

[/OT]
Ist das eine rhetorische Frage oder dein geplanter Workflow?


Gruß
Bitte warten ..
Mitglied: Biber
03.12.2011 um 11:48 Uhr
Moin JKoenig,

ich bin immer noch nicht ganz sicher, ob ich dein Szenario richtig verstehe.

Wenn es denn so ist, wie es bei mir angekommen ist, nämlich

  • Es liegen Dateien (=Flatfiles in einem Filesystem) vor
  • mit gleichem Aufbau und gleichen Feldformaten
  • und -aus Datenbanksicht- unterschiedlichen Schlüsselfeldern/PrimaryKeys

-> dann kannst du zwar NICHT mit einem "BULK INSERT"-Kommando alle Quellen mit einem Tastendruck importieren,
ABER mit einer einer kleinen Stored procedure und/oder dem bcp-Utility geht das.

Das Prinzip ist in diesem Databasejournal-Artikel sehr schön skizziert.

Grüße
Biber
Bitte warten ..
Mitglied: JKoenig
03.12.2011 um 12:17 Uhr
@TimoBeil

War der vorgegebene Workflow den ich gehen soll

@Biber

Die Situation hast du richtig verstanden.
Und vielen Dank für den Artikel, damit werde ich mich dann jetzt außeinandersetzen
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst Täglicher Export einer View aus MS SQL 2008 in Excel oder CSV (9)

Frage von Arafat zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...