從BOL:
-n
執行使用數據的本機(數據庫)的數據類型的大容量複製操作。該選項不會提示每個字段;它使用本地值。
數十億行?那麼你也將要使用:
的batch_size -b
指定每批數據中複製的行數。每個批次都作爲一個事務複製到服務器。 SQL Server在失敗的情況下提交或回滾每個批次的事務。
您不能一次訪問兩個數據庫,可能是通過鏈接服務器?這會讓事情變得更容易。
DECLARE @StartId BIGINT
DECLARE @NmbrOfRecords BIGINT
DECLARE @RowCount BIGINT
SET @StartId = 0
SET @NmbrOfRecords = 9999
SET @RowCount = 1
WHILE @RowCount > 0
BEGIN
BEGIN TRANSACTION
INSERT INTO DestinationDatabase.dbo.Mytable
SELECT * FROM SourceDatabase.dbo.Mytable
WHERE ID BETWEEN @StartId AND @StartId + @NmbrOfRecords
SET @RowCount = @@ROWCOUNT
SET @StartId = @StartId + @NmbrOfRecords + 1
COMMIT TRANSACTION
END
來源
2012-03-15 00:01:21
Wim
您的數據流有點不清楚,您的意思是將數據加載到您的應用程序中是什麼意思?是否正確,您將從SQL Server導出到平面文件,然後將該平面文件加載到您的應用程序中?它會將數據加載到內存中,還是將它作爲流從文件中處理?從SQL Server導出數據或將其加載到應用程序時,性能問題是否存在? – Pondlife 2012-03-15 08:50:46