sql-server - 表值函数刷新

标签 sql-server database-metadata

我在 SQL Server 中有一个表值函数 (TVF),如下所示:

CREATE FUNCTION TVF_xyz(@AuditKey INT)
RETURNS TABLE
AS
    RETURN
        SELECT *
        FROM xyz 
        WHERE AUDIT_KEY = @AuditKey
GO

现在,我向 xyz 表添加了一个新列。

当我使用 TVF_xyz 查询时,它不会显示新列(显示除新添加的列之外的所有其他列)。

查询:

SELECT TOP 10 * 
FROM TVF_xyz (1543)

我想知道,如何刷新TVF以显示新栏目。

PS:选择 TVF 中使用的 * 来获取所有列。

最佳答案

经过一番搜索,我发现了 sp_refreshsqlmodule (Transact-SQL) ,这是TVF的常见行为。

为了刷新TVF,需要执行以下SP:

EXEC sys.sp_refreshsqlmodule 'TVF_xyz'

关于sql-server - 表值函数刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43131121/

相关文章:

sql - 如何在旧版 SQL Server 中生成 JSON 结果?

oracle - 如何从 oracle DB 的元数据中获取表和列的注释?

parquet - 如何使用 DuckDB 在 Parquet 文件中显示用户架构?

sql - 类似于 TOP 10 的查询来选择中间记录?

sql - 如何在 oracle 中的现有表上生成(或获取)ddl 脚本?我必须在 Hive 中重新创建它们

teradata - 查询 Teradata 中的 volatile 表

database - 有没有办法在 E-R 图中表示元组与表之间的关系?

sql-server - 您如何继续提高您的 SQL 技能?

sql-server - SSRS 和 PowerBI 服务器

SQL - 子查询(列名)