【问题标题】:How to run a block of MSSQL code with multiple int variable values?如何运行具有多个 int 变量值的 SQL 代码块?
【发布时间】:2014-08-14 14:20:57
【问题描述】:

如何通过在 INT 变量 @Sector 中传递三个 int 值 (40,41,42) 来运行 MSSQL 代码块并使用这些值运行该块 3 次。

(需要 int 变量 @Sector 的 MSSQL 代码块)

【问题讨论】:

  • 能否提供一些代码和/或查询?
  • 一般来说,你不会。如果可能,您重新编写“代码块”,以便它可以处理 sets 数据,然后向其传递一个包含 3包含必要数据的行。

标签: sql sql-server loops int


【解决方案1】:

假设您无法创建批处理逻辑,以下光标通常是您解决此问题的方法。

DECLARE @Sectors TABLE ( Sector INT );

INSERT INTO @Sectors VALUES (40), (41), (42);

DECLARE @Sector INT;
DECLARE Sectors CURSOR FOR
    SELECT
        Sector
    FROM @Sectors;

OPEN Sectors;
FETCH Sectors INTO @Sector;

WHILE (@@FETCH_STATUS = 0)
BEGIN
    -- Do something here that cannot be batched
    PRINT @Sector;

    FETCH Sectors INTO @Sector;
END

CLOSE Sectors;
DEALLOCATE Sectors;

【讨论】:

  • 感谢 jtimperley 抽出时间回答我的问题。我喜欢你的解决方案。
猜你喜欢
  • 2011-06-08
  • 1970-01-01
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 1970-01-01
  • 2019-10-06
相关资源
最近更新 更多