4

我什至不想考虑花费了多少工时来编写相同的查询来加入我公司完全相同的表。

当我刚开始工作时,我认为这是一种低效率,并开始在单独的模式中编写视图,唯一的目的是为了方便开发人员。
我的老板不太喜欢这个,并建议我开始将我的常见查询提交到与生产 SQL 不同的文件夹中的源代码控制。这是有道理的,因为有些脚本需要参数,而并非所有脚本都是只读的。

什么是通用查询?

  • 用于诊断某些问题的脚本
  • 用于查看多个表之间关系的脚本(执行多个连接)
  • 我们不希望在存储过程中使用的脚本,因为它经常被调整以诊断当天的问题

我想解决的问题

  • 可发现性,如果没有人可以找到查询将被重写
  • IDE集成,希望能够在IDE中轻松查看查询。我已经尝试过 SQL Server 解决方案,但它们真的很糟糕,因为它们将您锁定为只处理该组文件。

我想知道那里的所有专业人士如何共享他们常见的 SQL 查询。

谢谢

4

5 回答 5

4

似乎操作人员想知道如何向团队宣传其他人可以/应该使用的有用 SQL,以免重新创建。

我过去是通过两种方式做到这一点的:

  1. 创建一个团队 Web wiki 页面,详细说明 SQL 以及如何使用它的示例。
  2. 在创建应共享的新 SQL 时向团队发送电子邮件。

当然,我们总是将 SQL 代码包含在版本控制中,只有 wiki 和电子邮件在“获取消息”部分中使用。

于 2009-07-22T19:42:11.990 回答
2

如果它是我称之为“通用”的东西,我可能会创建一个具有必要权限的人可以运行的存储过程。

如果存储过程路由不适用于您的团队,那么另一个选择是创建一个视图。 创建视图会带来独特的挑战,例如确保运行视图的每个人都对视图中的所有表具有选择权限。

除了将脚本存储在某种源代码控制中之外,也许将它们存储在 Share Point 站点或网络文件共享中对您的团队来说可以正常工作。共享脚本的真正挑战是人们有不同的方法来识别他们正在寻找的内容。允许标记查询所做的不同类型的事情的 wiki 类型的站点将很有用。

于 2009-07-22T19:24:27.020 回答
1

您创建一个视图。

于 2009-07-22T19:25:06.283 回答
0

很多方法可以做到这一点(包括你已经提到的一些):

  • 表值用户定义函数
  • 存储过程
  • 意见
  • 源代码控制
  • 客户端代码的正式共享数据访问层
于 2009-07-22T19:25:52.103 回答
0

视图是处理这类事情的正确方法。或者,在某些情况下,存储过程。

但是没有规定不能在源代码管理存储视图或存储过程的 DDL。

于 2009-07-22T19:28:16.137 回答