SQL服务器表填充源

时间:2009-10-08 20:52:45

标签: sql sql-server tsql sql-server-2000

我有一个审计数据库(由其他人创建)。

使用表大小数据(这是有意义的,因为它是审计数据库),它正在解决它。

SQL服务器有太多工作。

我想知道填充审计表的内容。

有什么像sys.comments等?哪个可以告诉我什么是填充表格,还是我必须检查每个作业中的代码?

此致

Manjot

4 个答案:

答案 0 :(得分:1)

你可以尝试运行这样的东西:

SELECT DISTINCT
    o.name,o.type_desc
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%YourTableName%'
    ORDER BY 2,1
OP提到SQL Server 2000之后

编辑

这应该适用于SQl Server 2000:

--remove comments to see the actual text too
SELECT DISTINCT
    o.name --,c1.colid,c1.text
    FROM sysobjects                  o
        INNER JOIN syscomments      c1 ON o.id = c1.id
        --join to next section of code in case search value is split over two rows
        LEFT OUTER JOIN syscomments c2 ON o.id = c2.id AND c2.colid=c1.colid+1
    WHERE c1.text Like '%YourTableName%'
        OR RIGHT(c1.text,100)+LEFT(c2.text,100) Like '%YourTableName%'
    ORDER BY 1--,2

答案 1 :(得分:0)

最有可能是被审计表上的触发器填充。

答案 2 :(得分:0)

如果您知道导致数据进入审计表的原因,您可以针对数据库运行(非常)简短的Profiler会话,专门针对该表进行过滤,同时触发操作。这将为您提供后续跟踪根操作的进一步步骤。

答案 3 :(得分:0)

尝试在命令列中查看msdb..sysjobsteps以获取目标表名称;这只有在他们使用T-SQL填充表时才有效。如果他们使用的是SSIS(或DTS)软件包,则无法使用。