Есть ли причина, по которой динамическая схема и имя таблицы в приведенном ниже сценарии распознаются как имя столбца?Если у меня жесткий код в схеме и именах таблиц вне динамического скрипта, функция не выполняет никаких проблем.
Ошибка = сообщение 207, уровень 16, состояние 1, строка 38 Неверное имя столбца '55_Dataset'.Сообщение 207, уровень 16, состояние 1, строка 38 Неверное имя столбца «EPAPRIORITY».повторяется для каждой итерации
Пример таблицы введите описание изображения здесь
DECLARE @Counter INT;
DECLARE @DATASET nvarchar(50);
DECLARE @STATE nvarchar(50);
DECLARE @sql nvarchar(max);
SET @Counter = 1;
WHILE @Counter <= 10
BEGIN
SET @DATASET = (Select [DATASET] FROM [xxx].[dbo].[EPA_Geocoding_Progress] Where [INT] = @Counter)
SET @STATE = (Select [STATE] FROM [xxx].[dbo].[EPA_Geocoding_Progress] Where [INT] = @Counter)
SET @sql = '
UPDATE [xxx].[dbo].[EPA_Geocoding_Progress]
Set [Geocoded] = (Select COUNT (*) FROM [xxx].[' + @STATE + '].[' + @DATASET + '])
Where [STATE] = [' + @STATE + '] AND [DATASET] = [' + @DATASET + ']'
exec sp_executesql @sql;
SET @Counter = @Counter + 1;
END