sql - 如何运行 while 循环以在 SQL 中运行动态查询?
问题描述
如何运行 while 循环以在 SQL 中运行动态查询?
Declare @var1 nvarchar(max)
Declare @var2 nvarchar(max)
Declare @var3 nvarchar(max)
While loop ( @var1, @var2, @var3 .... )
Begin
insert into TableA
exec (@var1) .. - in the loop logic
End
解决方案
如果我理解得很好,您想使用循环来执行一组动态 SQL 查询。然后你需要使用一个表在它们之间进行迭代,我使用一个变量表,但是如果你愿意,你可以使用一个临时表
DECLARE @Vars TABLE([ID] NOT NULL IDENTITY, [Var] NVARCHAR(MAX))
/*
INSERT Values to @Vars
*/
DECLARE @ID INT, @Var NVARCHAR(MAX)
WHILE EXISTS (SELECT 1 FROM @Vars)
BEGIN
SELECT TOP 1 @ID = [ID], @Var = [Var] FROM @Vars ORDER BY [ID]
INSERT TableA
EXEC(@Var)
DELETE @Vars WHERE [ID] = @ID
END
推荐阅读
- reactjs - .addSubmitChangeListener 不是函数
- python - 如何检索雪花或任何此类数据库等数据库中的所有目录名称、模式名称和表名称?
- wordpress - Worpress 评论错误“您发布评论的速度太快了。放慢速度”
- android - 在 Android 应用程序中初始化 OneSignal 时出现问题 - 在 runtime_flags 中设置的未知位:0x8000
- docker - Portainer:使用 docker prune 的主机作业不起作用
- android - 带有 TCP 信息源的 Android 架构存储库
- android - 如果用作表达式,'if' 必须同时具有 main 和 'else' 分支
- java - 使用葡萄从 groovy 脚本运行主类
- java - Maven 不使用全局 settings.xml 中的存储库
- java - Spring 不会完整返回 JSON