使用 while-begin-end 循环时 SQL native 和 JDBC 的区别

Posted

技术标签:

【中文标题】使用 while-begin-end 循环时 SQL native 和 JDBC 的区别【英文标题】:Difference in SQL native and JDBC when used while-begin-end loop 【发布时间】:2016-11-06 19:56:25 【问题描述】:

在本地 MSSQL 连接和 JDBC 中执行一个小的 t-sql 循环(while - begin - end)时,得到一个奇怪的结果。 在 MSSQL SMS 中,所有通过 JDBC 获得第一个循环的地方都按预期工作。

declare @i int = 1
while @i <= 10
  begin
    select @i
    set @i=(@i+1)
  end

短信结果为: 1 2 3 ... 10

在哪里通过 jdbc 只是 1

非常感谢任何帮助!

谢谢

【问题讨论】:

您可以尝试将SET NOCOUNT ON; 放在批处理的开头,看看是否有帮助。 (详情here。) 谢谢你,但......没有帮助 您是否正在检查多个结果集,如here 所述? 嗨,戈德,我正在创建一个临时表,然后需要更新几行关于临时表中的值的行,即 请出示您使用的Java代码。 【参考方案1】:

你可以试试

int size = 1
while(rs.next()) 
     if(rs != null)

        rs.beforeFirst();  
        rs.last();  
        size = rs.getRow();  

     

     System.out.println("cols = " + size);

【讨论】:

嗨 Raghu,这将需要在我不允许的地方更改代码。 Q 在 中作为常规 tsql 脚本执行

以上是关于使用 while-begin-end 循环时 SQL native 和 JDBC 的区别的主要内容,如果未能解决你的问题,请参考以下文章

delphi 中SQL语句

视频流中的 mv、fd、aq、vq、sq 和 f 是啥?

在 bash 脚本中循环 sql 查询

SAP SQ01怎样从开发机传输到生产机

如何使用光标和循环显示来自 sqlite 的片段的 recyclerview

用于循环的php数组管理显示堆积的条形图