Sql server 使用EXEC对while循环中的变量进行计数
我还有一个问题,希望你能帮助我 我需要一个while循环,在该循环中,我使用之前定义的变量(此处:@SETi)执行(EXEC)命令。除其他外,我用于while循环的变量“i”必须是count up 下面是我的一小段代码:Sql server 使用EXEC对while循环中的变量进行计数,sql-server,tsql,Sql Server,Tsql,我还有一个问题,希望你能帮助我 我需要一个while循环,在该循环中,我使用之前定义的变量(此处:@SETi)执行(EXEC)命令。除其他外,我用于while循环的变量“i”必须是count up 下面是我的一小段代码: DECLARE @i int SET @i = 1 DECLARE @SETi nvarchar(max) WHILE @i <= 10 BEGIN -- Tabelle definieren SET @SETi = 'S
DECLARE @i int
SET @i = 1
DECLARE @SETi nvarchar(max)
WHILE @i <= 10
BEGIN
-- Tabelle definieren
SET @SETi = 'SET '+CAST((@i) as nvarchar(max))+' += 1'
EXEC (@SETi)
END
DECLARE@i int
设置@i=1
声明@SETi nvarchar(最大值)
而@i在当前上下文中增加变量,因为EXEC
有自己的变量,您不能从那里访问它:
DECLARE @i int = 1
DECLARE @sql nvarchar(max)
WHILE @i <= 10
BEGIN
SET @sql = 'create table someName' + CAST(@i as nvarchar(max)) +...
EXEC (@sql)
SET @i = @i + 1
END
声明@i int=1
声明@sql nvarchar(最大值)
使用@i标记dbms时!(看起来一点也不像ANSI SQL…)你想做什么?首先,你忘记了while循环中的“SET@i=@i+1”,所以它是无止境的。当您在exec之前添加“print@SETi”时,您可以看到您做错了什么。“SET@i=@i+1”分别包含在变量@SETi@T.R.中的我的exec命令中,您为什么使用动态sql?详细说明你想做什么…嗨,谢谢你的回答。我知道你的解决办法行得通,但我不知道我是否能解决我的问题。。