2010-06-18 88 views
0

如何找出什么类型的sql代码(如proc,函数,视图等)与我的表TABLE1通过给定的数据库进行交互。示例代码对我非常有帮助。sql server:通过数据库查找表的使用情况

感谢

+0

哪个数据库? – Randy 2010-06-18 15:33:02

+0

@Randy - 他的意思是SQL Server。 – JonH 2010-06-18 15:33:57

+1

thx - 上帝保佑我给了甲骨文的答案,并因此而降职:) – Randy 2010-06-18 17:11:53

回答

1
select so.name, so.xtype 
from sysobjects so (nolock) 
inner join syscomments sc (nolock) on sc.id = so.id 
where sc.text like '%tablename%' 

此代码将搜索所有SQL Server对象以查找您的表。您必须为每个数据库运行此查询。

如果存储过程使用您的表,它将出现在此查询中。功能,视图和触发器也是如此。

xtype告诉你物体的类型。

以下是可能的xtype值:

  • d =字段名
  • F =外键
  • FN =功能
  • P =存储过程
  • PK =主键
  • S =系统表
  • U =用户表
  • V =隐藏的表
+0

非常感谢! – 2010-06-18 15:58:30

0

在你的问题没有足够的信息,但有一两件事你可以做的是使用SQL事件探查轮廓,其中的插入,更新和删除来源。

我假设你正在谈论一个应用程序如何与数据进行交互以及什么名字(比如一个存储过程)正在执行插入/更新/删除操作。

看看SQL事件探查器,它随您的客户端工具安装。将其过滤为仅显示与数据库的连接(数据库名称或ID)。

0

如果你一直很好,创造您的SP /视图/函数创建表格后,则sp_depends会告诉你evertyhing引用表。执行动态SQL即是。

相关问题