无法使用 Dbeaver 在 SQL 服务器中执行 while 子句

Can't execute a while clause in SQL Server with Dbeaver

我试图在 SQL 服务器的 Dbeaver 中执行一个循环 while,但是该语句一直在加载并且不执行它。我只想打印'ok!'这个词3次。

我不确定这是循环问题、Dbeaver 问题还是其他问题。

有人可以帮忙吗?

我的代码:

DECLARE @cnt INT = 0;

WHILE @cnt < 3
BEGIN
   PRINT 'ok!';
   
END;

Screenshot from Dbeaver

@cnt 永远不会增加,所以这个循环永远不会结束。它永远不会将控制权交还给系统,让它甚至显示第一个 ok 字符串。您需要添加:

DECLARE @cnt INT = 0;

WHILE @cnt < 3
BEGIN
   PRINT 'ok!';
   Set @cnt = @cnt + 1;
END;

无论如何,100 次中有 99 次,如果您在 SQL 中编写循环,那么您就做错了。 SQL 真的想一次对整个 集合 进行操作,而不是通过循环对集合中的单个项目进行操作。