【问题标题】:Procedure Paging for GridViewGridView 的过程分页
【发布时间】:2013-02-18 08:56:53
【问题描述】:

我想循环将数据从@tbl 表放入@tbl2 表中。不幸的是,我不知道我必须在 insert (INSERT INTO @tbl2 Values(@ID,?,?)) 我的意思是第二个和第三个参数。

MSSQL 2008 R2

例如(表@tbl):

规格 ID | SP

3 | '2008 年 5 月 1 日上午 8:30:52'

8 | '2008 年 5 月 1 日上午 8:30:52'

9 | '2008 年 5 月 1 日上午 8:30:52'

如果 @count = 3 我想获取这些数据 (9 | '5/1/2008 8:30:52 AM')

DECLARE @tbl TABLE
(
    SpecId BIGINT,
    SP DATETIME
) 
DECLARE @tbl2 TABLE
(
    ID int,
    SpecId BIGINT,
    SP DATETIME
) 
DECLARE @ID INT
DECLARE @count INT
DECLARE @firstNumber INT
DECLARE @secondNumber INT
SET @firstNumber = @PageSize * 10
SET @secondNumber = @firstNumber - 10 

WHILE (@count <= @TotalRowsNumber)

BEGIN

   IF @count > @secondNumber and @count <= @firstNumber
   BEGIN
        SET @ID +=1
        INSERT INTO @tbl2 Values(@ID,?,?)
   END


   SET @count = (@count + 1)

END

【问题讨论】:

  • 我不明白。你想做什么?你想要什么输出数据?输入什么?
  • 我会撒谎把数据从 tbl 放到 tbl2 INSERT INTO tbl2 Values(ID,SpecId,SP)

标签: sql sql-server tsql webforms


【解决方案1】:

你快到了……看看这个:

DECLARE @tbl TABLE
(
  Id int identity(1, 1),
    SpecId BIGINT,
    SP DATETIME
) 
DECLARE @tbl2 TABLE
(
    ID int,
    SpecId BIGINT,
    SP DATETIME
) 
DECLARE @ID INT
DECLARE @count INT
DECLARE @firstNumber INT
DECLARE @secondNumber INT
declare @PageSize int
declare @TotalRowsNumber int

SET @firstNumber = @PageSize * 10
SET @secondNumber = @firstNumber - 10 

-- Populate tbl
insert
into    @tbl
select  value1, value2
from    original_table

set @TotalRowsNumber = @@rowcount
set @count = 1

WHILE (@count <= @TotalRowsNumber)

BEGIN

  select  @value1 = value1
        , @value2 = value2
  from    @tbl
  where   Id = @count 

   IF @count > @secondNumber and @count <= @firstNumber
   BEGIN
        SET @ID +=1
        INSERT INTO @tbl2 Values(@ID,@value1,@value2)
   END


   SET @count = (@count + 1)

END

我做了什么。 @tbl 需要获得一个额外的列,称为 Id。这是一个标识列,用于在以后的体育场中进行引用。接下来,您使用原始值填充 @tbl。在 while 循环中,您将 @tbl 值放入一些变量中(感谢 @count = id 您正在循环记录),然后将它们插入到 @tbl2

【讨论】:

    【解决方案2】:

    已修复。

    我将 ID int 添加到此表中,稍后在循环中我为这两个参数创建了简单的选择:

    声明@tbl 表 ( SpecId BIGINT, SP 日期时间 )

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多