I am trying to execute the dynamic SQL from SQL Server while loop. When the only print statement is executed query prints in the correct format but does not execute dynamic SQL with execute() or SP_EXECUTESQL. Please suggest.
Code:
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
END