Ist es möglich, sql server bulk insert ohne Datei zu verwenden?

8

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!

    
marc esher 07.09.2010, 18:26
quelle

2 Antworten

12

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.)

    
Chris 07.09.2010, 18:28
quelle
1

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.

    
Sam 07.09.2010 18:30
quelle

Tags und Links