J'essaie d'exécuter le SQL dynamique à partir de SQL Server en boucle. Lorsque la seule instruction d'impression est exécutée, la requête s'imprime dans le format correct, mais n'exécute pas le code SQL dynamique avec execute()
ou SP_EXECUTESQL
. Veuillez suggérer. code:SQL Server en boucle et SQL dynamique
WHILE(@count > 0)
BEGIN
SELECT
@minID = MinID,
@maxID = MaxID
FROM
IDRange
WHERE
ID = @count
SET @QueryString = ' UPDATE
SD WITH(TABLOCk)
SET a = S4H.ID
FROM
A (nolock) S4H
INNER JOIN B SD on S4H.col = SD.col AND S4H.col1 = SD.col1
WHERE
SD.ID between ' + convert (varchar,@minID)+' AND '+convert (varchar,@maxID)+' AND
S4H.ID <= SD.ID AND
SD.ID <= S4h.ROWID'
SET @count= @count - 1'
print @QueryString
EXECUTE (@QueryString)
EXECUTE sp_executesql @QueryString, N'@minID INT,@maxID INT', @minID = @minID,@maxID= @maxID
--EXEC SP_EXECUTESQL @QueryString
--SELECT @Rcount= @@Rowcount
SET @count= @count - 1
END
FIN