【问题标题】:How to tell if anything is using a particular field?如何判断是否有任何东西正在使用特定字段?
【发布时间】:2014-03-20 17:25:20
【问题描述】:

使用 Visual Studio 2010 和 SQL Server 2008。我正在查看表中的一个字段。不确定它是否在任何地方使用,或者是否正在使用,如何使用。

任何简单的方法来判断我的解决方案或存储过程中的哪些 vb/c# 代码文件正在使用此字段。我知道我可以简单地进行“编辑/查找”并使用字段名称。但不知道是否有更简单、更好或更彻底的检查方法?谢谢!

【问题讨论】:

  • 更改列的名称,看看是否有任何“中断”?
  • @huMptyduMpty - 这个问题似乎只是关于数据库内部对该字段的引用(视图、SSPS 等)。这个问题是关于外部参考的。
  • 在@huMptyduMpty 的辩护中,您确实需要同时关注内部和外部。在外部,某些东西可能会间接引用该列(即存储过程、视图、用户定义函数等)。
  • 感谢所有 cmets 和输入。是的,我的问题是要找出是否在 SQL 服务器(存储过程)或我的 Visual Studio 解决方案(包含 VB.NET 和 C# 代码)中的任何地方使用此字段。

标签: c# sql sql-server vb.net


【解决方案1】:

@DMason 建议您“更改列的名称,看看是否有任何“中断”?我不建议这样做,因为它涉及破坏您的系统。但是,您可以在表上设置触发器,在访问审计表时写入审计表,让系统运行一段时间,看看是什么访问了它。

这不是一个完美的解决方案,如果您的系统有一些好的文档会更好(例如,根据定义,数据字典会告诉您它在哪里使用),但是它会起作用。

如果您不能使用触发器,您也可以对所有源中的字段名称执行 grep。然后手动查看结果,看看它在哪里使用,如果在任何地方。我不建议您使用 VS 内部查找,因为这会跳过某些文件——使用外部 grep。

【讨论】:

  • 关于更改列名的要点。我假设一个非产品系统——我应该指定的。 :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
相关资源
最近更新 更多