Ash*_*Ash 5 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
Run Code Online (Sandbox Code Playgroud)
现在,我在xyz表中添加了新列。
当我使用查询时TVF_xyz,它不会显示新列(显示除新添加的列以外的所有其他列)。
查询:
SELECT TOP 10 *
FROM TVF_xyz (1543)
Run Code Online (Sandbox Code Playgroud)
我想知道,如何刷新TVF以显示新列。
PS:Select *用于TVF中以获取所有列。
经过一番搜索,我发现了sp_refreshsqlmodule (Transact-SQL),它是 TVF 的常见行为。
为了刷新TVF,需要执行以下SP:
EXEC sys.sp_refreshsqlmodule 'TVF_xyz'
Run Code Online (Sandbox Code Playgroud)