sys.fn_trace_gettable (Transact-SQL)
适用于:SQL Server
以表格形式返回一个或多个跟踪文件的内容。
重要
在 SQL Server的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 请改用扩展事件。
语法
fn_trace_gettable ( 'filename' , number_files )
参数
“filename”
指定要读取的初始跟踪文件。 filename 为 nvarchar(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.trc 和 TraceOct5_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)