2009-09-15 58 views
1

有誰知道如何將數據插入到表中的約1000增量?我有一張包含數千條記錄的表,我想將其插入到不同服務器上的相同表中。插入數據

回答

0

SELECT ... LIMIT n個偏置米;是以小塊抽取大量數據的標準方式。但是閱讀你的問題,似乎你正試圖在兩臺數據庫服務器之間複製數據。也許你應該檢查數據庫引擎是否具有複製支持。

+0

它在SQL Server中工作嗎? – 2009-09-15 14:08:04

+0

它確實,但是這個表不會被複制。它位於開發服務器上。 – Eric 2009-09-15 14:33:55

1

根據不同的版本,你可以使用SSIS(2005/2008)或DTS(2000/7),或者如果您熟悉命令行,然後BCP或者如果你是管理員,這是一個一次性拍攝並根據再版本,企業經理具有查詢界面,必將讓你寫SQL(INSERT INTO ...)或SELECT * FROM ...但不知道該版本或目的其難度具體..

1

SSIS和最批量複製工具(包括BCP)將在模式,允許成批插入運行。鑑於您正在將其移動到另一臺服務器,您可能想要使用批量加載工具來完成此操作。

0

你想從一個表移動到另一個數據?嘗試BCP實用程序

http://msdn.microsoft.com/en-us/library/aa174646(SQL.80).aspx 

它對大量數據很有效。

1

如果表中有一個主鍵

Declare @Start Integer Set @Start = 1 
Decalre @End Integer Set @End = 1000 
Declare @PKs table 
    (rowNo Integer identity Primary Key Not Null, 
     PK Integer Not Null) 
Insert @Pks(PK) 
Select PrimaryKeyColumn 
Form SourceTable 
Where [Criteria to select rows you want] 

While Exists(Select * From @PKs) 
    Begin 
     Begin Transaction 
     Insert DestTable([ColumnList]) 
     Select [ColumnList] 
     From SourceTable S 
     Join @Pks p 
      On p.PK = s.PrimaryKeyColumn 
     Where p.rowNo Between @Start and @End 
     Commit Transaction 
     -- ---------------------------------- 
     Delete @PKs where rowNo Between @Start and @End 
     Set @Start = @End + 1 
     Set @End = @Start + 999 
    End 
+0

oooooh ..我喜歡! – Taptronic 2009-09-17 13:26:43

0

我問過類似的問題,導入/導出嚮導建議工作的很好我。從一臺機器上的一個數據庫向另一臺機器上的另一臺數據庫插入數千條記錄非常快(幾秒鐘)。