У меня такая же ошибка, все было правильно, только я использовал тот же объект интерфейса оператора для выполнения и обновления базы данных. После разделения, то есть с использованием разных объектов интерфейса оператора для обновления и выполнения запроса, я решил эту ошибку. то есть избавиться от этого, не используйте один и тот же объект-оператор для обновления и выполнения запроса.
Вы можете попробовать следующий подход:
-- Table
CREATE TABLE #ListOfTables (
[TableName] varchar(max)
)
INSERT INTO #ListOfTables
([TableName])
VALUES
('Table1'),
('Table2'),
('Table3'),
('Table4'),
('Table5'),
('Table6'),
('Table7'),
('Table8'),
('Table9')
-- Statement
DECLARE @stm nvarchar(max)
SET @stm = N''
SELECT @stm = @stm + N'SELECT * FROM ' + QUOTENAME([TableName]) + N'; '
FROM #ListOfTables
/*
-- Or using FOR XML PATH
SELECT @stm = (
SELECT CONCAT(N'SELECT * FROM ', QUOTENAME([TableName]), N'; ')
FROM #ListOfTables
FOR XML PATH('')
)
*/
PRINT @stm
EXEC sp_executesql @stm