gpt4 book ai didi

SQL Server View - 错误的命名约定?

转载 作者:行者123 更新时间:2023-12-02 08:17:48 29 4
gpt4 key购买 nike

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 View ,以健全性检查它们是否继续运行,其中一些与报告相关,一些用作 ProSolution 中的应用程序数据源。

其中一个 View 名为UnmarkedRegister(Today),括号用于将其与类似 View 区分开来,该 View 在应用程序中用于驱动显示数据。

当查询按预期运行时,返回正确的数据 - 游标返回错误

Msg 208, Level 16, State 1, Line 1
Invalid object name 'V_WFC_UnmarkedRegister'

我想知道为什么游标的 EXEC(SQL) 部分中省略了括号部分?

最佳答案

使用quotename() :

Set @SQL = 'SELECT TOP 10 * FROM ' + QUOTENAME(@TableName);

关于SQL Server View - 错误的命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50489191/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com