用于批量插入的函数或存储过程

时间:2014-09-02 21:08:47

标签: stored-procedures teradata

如何将以下内容转换为teradata存储过程或某些功能: 在EXISTS(SELECT * FROM#temp_set1)的时候 BEGIN

/ * statemnts组:删除插入等

喜欢* /  INSERT INTO #temp_set                     SELECT TOP 200 * FROM#temp_set1;                   INSERT INTO Activepull                     as select * from#temp_set1                 这应该发生在每组200个,直到所有插入

端;

#temp_set1中有超过60000行,所以想要按集插入。 感谢。

1 个答案:

答案 0 :(得分:0)

写在我的手机上,但我会使用over表达式。它会创建一种伪标识列,然后您可以使用它进行分页。您甚至可以根据order by子句选择订单。

Declare @IntervalSize int = 100
Declare @BeginSet int = 0,
        @EndSet int = @IntervalSize
While @Counter < (Select Max(ROW_NUMBER() OVER (ORDER BY someColumn desc) From #temp_set1)
Begin
    Insert Into #temp_set 
    Select *, Row_Number() Over (Order By someColumn desc) As MyIdentity
    Where  MyIdentity Between @BeginSet And @EndSet

    Select @BeginSet = @BeginSet + @IntervalSize,
           @EndSet = @EndSet + @IntervalSize
End