Neugierig, wenn das möglich ist: Der App-Server und der DB-Server leben (offensichtlich) an verschiedenen Orten. Der App-Server generiert derzeit eine Datei zur Verwendung mit der Masseneinfügung von SQL Server.
Dies erfordert, dass sowohl die Datenbank als auch der Anwendungsserver den Standort sehen können, und es erschwert die Konfiguration in verschiedenen Umgebungen.
Was ich gerne wissen würde: Ist es in diesem Fall möglich, das Dateisystem zu umgehen? Vielleicht kann ich die Daten an den SQL-Server übergeben und die Datei erzeugen lassen?
Ich bin auf SQL Server 2008, wenn das einen Unterschied macht.
Danke!
Ich glaube nicht, dass Sie das mit dem Bulkcp-Tool von SQL Server tun können, aber wenn Ihre Anwendung mit .NET geschrieben wird, können Sie die Klasse System.Data.SqlClient.SqlBulkCopy verwenden, um Zeilen aus einer Datentabelle (oder jede Datenquelle, auf die Sie mit einem SqlDataReader zugreifen können.)
Aus der Dokumentation zur Masseneinfügung:
%Vor%Das FROM 'data_file' ist nicht optional und wird wie folgt angegeben:
'Daten_Datei' Ist der vollständige Pfad der Datendatei, die Daten enthält, die in die Datei importiert werden sollen angegebene Tabelle oder Ansicht GROß EINFÜGEN kann Daten von einer Festplatte (einschließlich Netzwerk, Diskette, Festplatte und so weiter).
data_file muss einen gültigen Pfad angeben von dem Server, auf dem SQL Server ist Laufen. Wenn data_file eine Fernbedienung ist Datei, geben Sie das Universal Naming an Konvention (UNC) Name. Ein UNC-Name hat die Form \ Systemname \ Freigabename \ Pfad \ Dateiname. Beispielsweise, \ SystemX \ DiskZ \ Verkauf \ update.txt.
Ihre Anwendung könnte die Einfügung direkt mit der Methode durchführen, die Ihren Leistungsanforderungen entspricht.
Tags und Links sql sql-server bulkinsert