好奇,如果這是可能的:應用程序服務器和數據庫服務器住在不同的地方(顯然)。應用程序服務器當前生成一個用於sql server批量插入的文件。是否可以使用沒有文件的sql server批量插入?
這要求數據庫和應用程序服務器都能夠看到位置,並且會在不同的環境中使配置更加困難。
我想知道的是:在這種情況下是否可以繞過文件系統?也許我可以將數據傳遞給sql server並讓它生成文件?
我在sql server 2008上,如果這有所作爲。
謝謝!
好奇,如果這是可能的:應用程序服務器和數據庫服務器住在不同的地方(顯然)。應用程序服務器當前生成一個用於sql server批量插入的文件。是否可以使用沒有文件的sql server批量插入?
這要求數據庫和應用程序服務器都能夠看到位置,並且會在不同的環境中使配置更加困難。
我想知道的是:在這種情況下是否可以繞過文件系統?也許我可以將數據傳遞給sql server並讓它生成文件?
我在sql server 2008上,如果這有所作爲。
謝謝!
我不認爲你可以用SQL Server的bulkcp工具做到這一點,但是如果你的應用是用.NET編寫的,你可以使用System.Data.SqlClient.SqlBulkCopy類從數據表中批量插入行(或者可以使用SqlDataReader訪問的任何數據源)。
從上批量插入的文檔:
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]
FROM 'data_file'
的FROM 'DATA_FILE' 不是可選的,並且被指定爲這樣:
'DATA_FILE' 是對數據文件的完整路徑包含要導入到 指定的表或視圖的數據。 BULK INSERT 可以從磁盤導入數據(包括 網絡,軟盤,硬盤和 等)。
data_file必須從運行SQL Server爲 的服務器指定有效路徑 。如果data_file是遠程文件 ,請指定通用命名 約定(UNC)名稱。 UNC名稱的格式爲 \ Systemname \ ShareName \ Path \ FileName。例如, \ SystemX \ DiskZ \ Sales \ update.txt。
您的應用程序可以使用任何方法直接插入,以滿足您的性能需求。
你的意思是用'IDataReader'。 – SLaks 2010-09-07 18:30:22
補充:通過讀取數組中的信息,實現一個類實現iDataReader非常簡單。如果您想要在SQL數據庫中存儲一組存儲在數組中的信息,那麼這是一個很好的方法。 – supercat 2010-09-07 19:20:13
@Slaks,是的,我太具體了。 – Chris 2010-09-07 19:29:38