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
Run Code Online (Sandbox Code Playgroud)
我有一个游标,它贯穿特定模式中的所有SQL视图,以便检查它们是否继续运行,一些与报告相关,一些在ProSolution中用作应用程序数据源.
其中一个视图名为UnmarkedRegister(今天),用于将其与类似视图区分开来的括号,此视图在应用程序中用于驱动显示数据.
当查询按预期运行时,返回正确的数据 - 游标返回错误
消息208,级别16,状态1,行1
无效的对象名称'V_WFC_UnmarkedRegister'
我想知道为什么在光标的EXEC(SQL)部分中省略了括号内的部分?