以增量插入数据

时间:2009-09-15 13:59:35

标签: sql sql-server sql-server-2005 tsql sms

有谁知道如何以大约1000的增量将数据插入表中?我有一个包含数千条记录的表,我希望将其插入到不同服务器上的相同表中。

7 个答案:

答案 0 :(得分:1)

根据版本的不同,您可以使用SSIS(2005/2008)或DTS(2000/7),或者如果您熟悉命令行,那么BCP或者如果您是管理员,这是一次性镜头AND取决于版本,企业管理器具有查询接口,肯定允许您编写SQL(INSERT INTO ...)或SELECT * FROM ...但不知道其难以具体的版本或目的..

答案 1 :(得分:1)

SSIS和大多数批量复制工具(包括bcp)将以允许批量插入的模式运行。鉴于您正在将其移动到另一台服务器,您可能还是希望使用批量加载工具来执行此操作。

答案 2 :(得分: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

答案 3 :(得分:0)

SELECT ... LIMIT n OFFSET m;是以小块提取大量数据的标准方法。但是阅读您的问题,您似乎正在尝试在两个数据库服务器之间复制数据。也许您应该检查数据库引擎是否具有复制支持。

答案 4 :(得分:0)

您想将数据从一个表移动到另一个表吗?尝试 BCP实用程序

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

它可以处理大量数据。

答案 5 :(得分:0)

答案 6 :(得分:0)

我问了一个类似的问题,导入/导出向导建议对我有用。从一台机器上的一个数据库到另一台机器上的另一台数据库插入数千条记录非常快(几秒钟)。