Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2005系统存储过程,以查找受影响表的列表_Sql_Sql Server - Fatal编程技术网

SQL Server 2005系统存储过程,以查找受影响表的列表

SQL Server 2005系统存储过程,以查找受影响表的列表,sql,sql-server,Sql,Sql Server,SQL Server 2005中是否有任何系统定义的sp可用,以查找应用程序运行时哪些表受到影响,以及我们从一个页面导航到另一个页面。我知道没有,但Profiler提供了一个解决方案。运行探查器(可以是开发人员框)并导航。它将为您创建一个正在运行的输出文件 还有显示依赖关系的代码工具。我想至少有一个显示了对SQL对象的依赖关系。我不这么认为。您可以运行SQL事件探查器来查看针对SQL server触发了哪些命令,但您必须自己解析这些命令 您也可以尝试清空查询缓存,然后在导航完成后查看它,但此缓存

SQL Server 2005中是否有任何系统定义的sp可用,以查找应用程序运行时哪些表受到影响,以及我们从一个页面导航到另一个页面。

我知道没有,但Profiler提供了一个解决方案。运行探查器(可以是开发人员框)并导航。它将为您创建一个正在运行的输出文件


还有显示依赖关系的代码工具。我想至少有一个显示了对SQL对象的依赖关系。

我不这么认为。您可以运行SQL事件探查器来查看针对SQL server触发了哪些命令,但您必须自己解析这些命令


您也可以尝试清空查询缓存,然后在导航完成后查看它,但此缓存将被服务器上运行的其他查询(包括SQL server本身运行的查询)污染。

不幸的是,要找到这一点,确实没有简单的方法(如果有的话)

正如SQL Server MVP Aaron Bertrand在其优秀博客文章中所说:

今天再次出现的一个常见问题是,“如何查看上次访问数据的时间?”SQL Server不会为您跟踪此信息。选择触发器仍然不存在。第三方工具非常昂贵,可能会产生意外的开销。人们仍然不愿意或无法通过存储过程约束表访问,否则存储过程可以执行简单的日志记录。即使在所有表访问都是通过存储过程进行的情况下,修改所有存储过程以执行日志记录也会非常麻烦

然而,借助于
sys.dm\u db\u index\u usage\u stats
DMV(动态管理视图)函数和Aaron的一些巧妙的T-SQL编程,您可以找到其中的一些答案-查看他非常有启发性的博客文章了解详细信息

但是:由于此信息基于DMV,且DMV中的“D”代表动态,因此这些值仅在上次服务器重新启动后有效,并且在下次必须重新启动SQL server进程/重新启动服务器计算机时将被删除且不会保留