DECLARE @TableName AS VARCHAR(250);
DECLARE @SQL AS VARCHAR(500);
DECLARE @ViewCheck as CURSOR;
SET @ViewCheck = CURSOR FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'VIEW' AND TABLE_NAME LIKE 'V_WFC%'
OPEN @ViewCheck
FETCH NEXT FROM @ViewCheck INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Set @SQL = 'SELECT TOP 10 * FROM ' + @TableName
PRINT(@SQL)
EXEC(@SQL)
FETCH NEXT FROM @ViewCheck INTO @TableName;
END
CLOSE @ViewCheck
У меня есть курсор, который проходит через все представления SQL в определенной схеме, чтобы проверить работоспособность, что они продолжают функционировать, некоторые из них привязаны к отчетности, а некоторые используются в качестве источника данных приложений в ProSolution.
Одно из этих представлений называется UnmarkedRegister (Today) скобками, используемыми для того, чтобы отличать его от a с аналогичным видом, этот используется в приложении для управления отображаемыми данными.
Пока запрос выполняется так, как ожидалось, возвращает правильные данные - курсор возвращает ошибку
Msg 208, уровень 16, состояние 1, строка 1
Недопустимое имя объекта 'V_WFC_UnmarkedRegister'
и мне интересно, почему раздел в скобках опущен в разделе EXEC (SQL) курсора?