我有一个审计数据库(由其他人创建)。
使用表大小数据(这是有意义的,因为它是审计数据库),它正在解决它。
SQL服务器有太多工作。
我想知道填充审计表的内容。
有什么像sys.comments等?哪个可以告诉我什么是填充表格,还是我必须检查每个作业中的代码?
此致
Manjot
答案 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)软件包,则无法使用。