Sql server sql server事件探查器2014“;无法打开表";

Sql server sql server事件探查器2014“;无法打开表";,sql-server,trace,sql-server-2014,sql-server-profiler,Sql Server,Trace,Sql Server 2014,Sql Server Profiler,我正在尝试重播保存到DB表中的SQL Server 2014探查器跟踪。打开时,我会收到“无法打开表”错误消息。windows日志中没有任何内容 我在谷歌上搜索过,这个错误在将SQLServer2000系统升级到64位系统时经常发生。这在这里不适用。我在Windows Server 2012上运行,新安装了SQL Server 2014 跟踪是一个TSQL\u回放模板。我使用以下代码将其保存到一个表中。代码生成了一个具有所示定义的表 SELECT * INTO myTrace FROM ::

我正在尝试重播保存到DB表中的SQL Server 2014探查器跟踪。打开时,我会收到“无法打开表”错误消息。windows日志中没有任何内容

我在谷歌上搜索过,这个错误在将SQLServer2000系统升级到64位系统时经常发生。这在这里不适用。我在Windows Server 2012上运行,新安装了SQL Server 2014

跟踪是一个
TSQL\u回放
模板。我使用以下代码将其保存到一个表中。代码生成了一个具有所示定义的表

SELECT * 
INTO myTrace 
FROM ::fn_trace_gettable(N'c:\Logs\sql_trace_events.trc', default)

CREATE TABLE [dbo].[myTrace]
(
    [TextData] [ntext] NULL,
    [BinaryData] [image] NULL,
    [DatabaseID] [int] NULL,
    [TransactionID] [bigint] NULL,
    [LineNumber] [int] NULL,
    [NTUserName] [nvarchar](256) NULL,
    [NTDomainName] [nvarchar](256) NULL,
    [HostName] [nvarchar](256) NULL,
    [ClientProcessID] [int] NULL,
    [ApplicationName] [nvarchar](256) NULL,
    [LoginName] [nvarchar](256) NULL,
    [SPID] [int] NULL,
    [Duration] [bigint] NULL,
    [StartTime] [datetime] NULL,
    [EndTime] [datetime] NULL,
    [Reads] [bigint] NULL,
    [Writes] [bigint] NULL,
    [CPU] [int] NULL,
    [Permissions] [bigint] NULL,
    [Severity] [int] NULL,
    [EventSubClass] [int] NULL,
    [ObjectID] [int] NULL,
    [Success] [int] NULL,
    [IndexID] [int] NULL,
    [IntegerData] [int] NULL,
    [ServerName] [nvarchar](256) NULL,
    [EventClass] [int] NULL,
    [ObjectType] [int] NULL,
    [NestLevel] [int] NULL,
    [State] [int] NULL,
    [Error] [int] NULL,
    [Mode] [int] NULL,
    [Handle] [int] NULL,
    [ObjectName] [nvarchar](256) NULL,
    [DatabaseName] [nvarchar](256) NULL,
    [FileName] [nvarchar](256) NULL,
    [OwnerName] [nvarchar](256) NULL,
    [RoleName] [nvarchar](256) NULL,
    [TargetUserName] [nvarchar](256) NULL,
[DBUserName] [nvarchar](256) NULL,
[LoginSid] [image] NULL,
[TargetLoginName] [nvarchar](256) NULL,
[TargetLoginSid] [image] NULL,
[ColumnPermissions] [int] NULL,
[LinkedServerName] [nvarchar](256) NULL,
[ProviderName] [nvarchar](256) NULL,
[MethodName] [nvarchar](256) NULL,
[RowCounts] [bigint] NULL,
[RequestID] [int] NULL,
[XactSequence] [bigint] NULL,
[EventSequence] [bigint] NULL,
[BigintData1] [bigint] NULL,
[BigintData2] [bigint] NULL,
[GUID] [uniqueidentifier] NULL,
[IntegerData2] [int] NULL,
[ObjectID2] [bigint] NULL,
[Type] [int] NULL,
[OwnerID] [int] NULL,
[ParentName] [nvarchar](256) NULL,
[IsSystem] [int] NULL,
[Offset] [int] NULL,
[SourceDatabaseID] [int] NULL,
[SqlHandle] [image] NULL,
[SessionLoginName] [nvarchar](256) NULL,
[PlanHandle] [image] NULL,
[GroupID] [int] NULL
) 

我尝试了同样的方法,但没有遇到任何问题。您是否尝试过使用新跟踪并保存到另一个命名表?

您必须等待……在完全加载脚本之前,“replay”将灰显约1分钟。

也有同样的问题,结果是我试图在不同的SQL实例上打开Profiler 2014中使用Profiler 2008记录的跟踪,以回复跟踪。在replay实例上将profiler升级到2014解决了这个问题。

您必须首先创建特定结构的表。尝试将跟踪从探查器导出到表中,并查看它创建了什么。然后只需将列的子集插入表中。以下是我用于SQL 2012-2017的内容:

------- Trace created with Replay template

USE [testdb]

GO 

/****** Object:  Table [dbo].[TraceTable]    Script Date: 29-Oct-18 17:37:07 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON

GO 

CREATE TABLE [dbo].[TraceTableSQL1] 
( 
    [RowNumber] [int] IDENTITY ( 0 , 1 ) NOT NULL , 
    [EventClass] [int] NULL , 
    [BinaryData] [image] NULL , 
    [DatabaseID] [int] NULL , 
    [NTUserName] [nvarchar] ( 128 ) NULL , 
    [NTDomainName] [nvarchar] ( 128 ) NULL , 
    [HostName] [nvarchar] ( 128 ) NULL , 
    [ClientProcessID] [int] NULL , 
    [ApplicationName] [nvarchar] ( 128 ) NULL , 
    [LoginName] [nvarchar] ( 128 ) NULL , 
    [SPID] [int] NULL , 
    [StartTime] [datetime] NULL , 
    [EndTime] [datetime] NULL , 
    [Error] [int] NULL , 
    [DatabaseName] [nvarchar] ( 128 ) NULL , 
    [RowCounts] [bigint] NULL , 
    [RequestID] [int] NULL , 
    [EventSequence] [bigint] NULL , 
    [IsSystem] [int] NULL , 
    [ServerName] [nvarchar] ( 128 ) NULL , 
    [TextData] [ntext] NULL , 
    [EventSubClass] [int] NULL , 
    [Handle] [int] NULL , 
    PRIMARY KEY CLUSTERED 
    ( 
        [RowNumber] ASC 
    ) 
    WITH ( PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON ) ON [PRIMARY] 
) 
ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] 
GO 

INSERT [TraceTableSQL1] 
SELECT 
[EventClass] , 
[BinaryData] , 
[DatabaseID] , 
[NTUserName] , 
[NTDomainName] , 
[HostName] , 
[ClientProcessID] , 
[ApplicationName] , 
[LoginName] , 
[SPID] , 
[StartTime] , 
[EndTime] , 
[Error] , 
[DatabaseName] , 
[RowCounts] , 
[RequestID] , 
[EventSequence] , 
[IsSystem] , 
[ServerName] , 
[TextData] , 
[EventSubClass] , 
[Handle] 
FROM sys.fn_trace_gettable ( N'd:\temp\profiler.trc' , DEFAULT )

如果它是一个大的脚本,您可能需要等待更长的时间,直到重播不是灰显