Sql server 填充SQL表-SQL Server探查器不会';我不能捡起来

Sql server 填充SQL表-SQL Server探查器不会';我不能捡起来,sql-server,trace,sql-server-profiler,Sql Server,Trace,Sql Server Profiler,我正在尝试使用SQL server profiler来运行跟踪,跟踪我们使用的一个软件执行的一些“幕后”操作,该软件不再工作或不受支持,但我们需要用于我们的工作。该软件的一部分使用SQLExpress,因此我们的理论是,如果我们可以更改SQL表、SP等,我们就可以修复该程序。我们无法访问源代码 我试图跟踪一个特定的表,比如dbo.VAL,以确定其数据来自何处。程序运行后,我可以在SQL中看到最后一个表,我正在运行的跟踪中有许多语句与该表相关,但它们似乎都没有填充该表(第一个语句将其创建为空表)。

我正在尝试使用SQL server profiler来运行跟踪,跟踪我们使用的一个软件执行的一些“幕后”操作,该软件不再工作或不受支持,但我们需要用于我们的工作。该软件的一部分使用SQLExpress,因此我们的理论是,如果我们可以更改SQL表、SP等,我们就可以修复该程序。我们无法访问源代码

我试图跟踪一个特定的表,比如dbo.VAL,以确定其数据来自何处。程序运行后,我可以在SQL中看到最后一个表,我正在运行的跟踪中有许多语句与该表相关,但它们似乎都没有填充该表(第一个语句将其创建为空表)。然而,最终的表格显然包含数据

我的问题是,在跟踪运行时,该软件是否有可能将数据插入表中,而这些数据不会显示在跟踪上?我在第一次跟踪中使用了默认选项,并尝试了一些附加选项,但当我为跟踪启用太多选项时,软件会停止运行,我不知道哪些选项对我有用。(每次跑步需要30分钟,因此“尝试所有组合”是不可行的…)


进一步资料:

以下是与此特定表相关的跟踪中显示的语句,为方便起见进行了编号:

1.

if object_id('[dbo].[VAL]','u') is not null

drop table [dbo].[VAL]
create table [dbo].[VAL] (

[field1] bigint, 
[field2] varchar(2000),
 [field3] varchar(2000),
 [field4] varchar(100),
 [field4] varchar(50)

)

2.

CREATE VIEW [dbo].[Table1]
AS

WITH CTE_ErrorOutput AS ( 
SELECT 'Data1' AS  [Fielda1],[Fielda2],[Fielda3],[Fielda4],[Fielda4],[Fielda4] FROM [dbo].[Table2]

UNION ALL

SELECT 'Data2' AS  [field1],[field2],[field3],[field4],[field5],[field6] FROM [dbo].[VAL]

UNION ALL

[[etc.]]

),
CTE_2 AS (
[[etc.]]
)
SELECT * FROM CTE_ErrorOutput
UNION ALL
SELECT * FROM CTE_2

3.

create view [dbo].[Table3] as
 select
 Fieldb1,Fieldb2 from
 [dbo].[VAL]

4.

SET FMTONLY OFF; SET NO_BROWSETABLE ON; SET FMTONLY ON;Select top 0 * from dbo.VAL SET FMTONLY OFF; SET NO_BROWSETABLE OFF;

5.

select @@trancount; SET FMTONLY ON select * from dbo.VAL SET FMTONLY OFF exec ..sp_tablecollations_100 N'[dbo].[VAL]'

6.

insert bulk dbo.VAL ([field1] BigInt, [field2] VarChar(2000) COLLATE Latin1_General_CI_AS, [field3] VarChar(2000) COLLATE Latin1_General_CI_AS, [field4] VarChar(100) COLLATE Latin1_General_CI_AS, [field5] VarChar(50) COLLATE Latin1_General_CI_AS)
如你所见,1。删除表并将其创建为空,2-3只使用数据。4-6,我不太确定他们做了什么,但他们似乎没有增加数据。sp_tablecollations_100似乎是一个与“插入批量”相关的系统存储过程。我怀疑“插入批量”是指将数据加载回软件或可能加载到CSV中,而CSV是软件输出的内容


我的目标只是确定在不在分析器中看到表的情况下如何填充表的可能性。我不需要对其进行修复,但在这种情况下,我需要一种方法来确认使用我现有的工具无法查看人口事件。

INSERT BULK
是您的人,但如果我没记错的话,您无法在profiler中查看数据。当您使用批量接口时,服务器在接收整个请求之前开始执行请求。数据有点流入表中。首先,探查器从2012年起就被弃用,取而代之的是扩展事件。XEs提供的事件比旧的SQL Server探查器多得多。其次,您真的不想捕获批量插入数据——这不仅会造成大量数据,而且会消除批量操作带来的任何好处。你在找审计吗?当你说你想找到数据的来源是什么意思?您已经可以捕获客户端的IP和应用程序名称。无论如何,您都可以捕获批量操作。这里有一个相关链接可能对DBA:SMM有所帮助-这个问题似乎证实了探查器不会获取信息,但我想我还需要知道是否有其他方法获取信息。有人知道在这种情况下,扩展事件是否会对我有所帮助吗?