sys.fn_trace_gettable (Transact-SQL)

适用于:SQL Server

以表格形式返回一个或多个跟踪文件的内容。

重要

在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用扩展事件。

Transact-SQL 语法约定

语法

  
fn_trace_gettable ( 'filename' , number_files )  

参数

filename
指定要读取的初始跟踪文件。 filenamenvarchar(256),没有默认值。

number_files
指定要读取的滚动更新文件数。 此数字包括文件名中指定的初始文件。 number_files是一个 int

注解

如果 number_files 指定为 默认值fn_trace_gettable 读取所有滚动更新文件,直到它到达跟踪的末尾。 fn_trace_gettable返回一个表,其中包含对指定跟踪有效的所有列。 有关详细信息,请参阅sp_trace_setevent(Transact-SQL)。

请注意,fn_trace_gettable函数不会加载滚动更新文件(使用 number_files 参数指定此选项时),原始跟踪文件名以下划线和数值结尾。 (这不适用于在文件滚动更新时自动追加的下划线和数字。解决方法是重命名跟踪文件,以删除原始文件名中的下划线。 例如,如果原始文件名为 Trace_Oct_5.trc,并且滚动更新文件名为 Trace_Oct_5_1.trc,则可以将文件重命名为 TraceOct5.trcTraceOct5_1.trc

该函数可以读取在执行该函数所在实例中仍处于活动状态的跟踪。

权限

要求对服务器具有 ALTER TRACE 权限。

示例

A. 使用 fn_trace_gettable 从跟踪文件导入行

下面的示例在 fn_trace_gettable 语句的 FROM 子句内部调用 SELECT...INTO

USE AdventureWorks2022;  
GO  
SELECT * INTO temp_trc  
FROM fn_trace_gettable('c:\temp\mytrace.trc', default);  
GO  

B. 使用 fn_trace_gettable 返回一个表,其中具有可以加载到 SQL Server 表中的 IDENTITY 列

以下示例在 SELECT...INTO 语句中调用该函数,并返回一个表,其中具有可加载到表 IDENTITY 中的 temp_trc 列。

USE AdventureWorks2022;  
GO  
SELECT IDENTITY(int, 1, 1) AS RowNumber, * INTO temp_trc  
FROM fn_trace_gettable('c:\temp\mytrace.trc', default);  
GO  

另请参阅

sp_trace_generateevent (Transact-SQL)
sp_trace_setevent (Transact-SQL)
sp_trace_setfilter (Transact-SQL)
sp_trace_setstatus (Transact-SQL)