Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 4509 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 ..
Ähnliche Inhalte
Datenbanken
MS SQL - Update Text Feld mit Steuerzeichen (4)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
MS-SQL-Server + T-SQL+Batch (4)

Frage von kallewirsch zum Thema Datenbanken ...

Datenbanken
gelöst MS SQL - primary Datei verkleinern (6)

Frage von Thomas2 zum Thema Datenbanken ...

Windows Server
gelöst MS SQL Server 2016 - wann brauche ich eine CAL? (6)

Frage von BlackListMe zum Thema Windows Server ...

Neue Wissensbeiträge
Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (13)

Frage von Spitzbube zum Thema Netzwerke ...

LAN, WAN, Wireless
Eine Netzwerkdose im Wechsel für zwei unterschiedliche Netze (12)

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

Voice over IP
SNOM D765 an LancomR883VAW (10)

Frage von MS6800 zum Thema Voice over IP ...

Windows Netzwerk
Ordner-Freigabe außerhalb der Domäne (9)

Frage von Remsboys zum Thema Windows Netzwerk ...