在 SQL Server 中创建和管理全局 Procs 和 UDF 的最佳方法是啥?
Posted
技术标签:
【中文标题】在 SQL Server 中创建和管理全局 Procs 和 UDF 的最佳方法是啥?【英文标题】:What is the best way to create and manage global Procs and UDFs in SQL Server?在 SQL Server 中创建和管理全局 Procs 和 UDF 的最佳方法是什么? 【发布时间】:2011-10-21 15:34:07 【问题描述】:假设我在同一个 SQL Server 实例上有 2 个独立的数据库。 DB1 是一个与交易和持仓相关的数据库。 DB2 是一个与市场定价变量相关的数据库。
两个数据库都有处理时间/日期对象的概念,我创建了一些方便的 UDF。让我们进一步想象我构建了一些方便的数学函数,我想从所有数据库中调用它们。创建和组织它们的最佳方式是什么?
即我是否应该在主数据库中创建 UDF 和 SP?我应该如何对我的所有 CustomDateTime UDF 进行分组,最好在 Schema 中创建一些东西,以便将 .dbo 替换为 .myDateTime 或 .myMath?
感谢您的建议,因为我不喜欢我目前将大部分功能放在 DB1 中的方式,而且我知道很多功能与 DB2 相关?
【问题讨论】:
【参考方案1】:使用 Visual Studio 创建一个数据库项目(我相信 2008 和 2010 支持它)。在项目中保持对象脚本的组织。将项目及相关文件检入某种形式的版本控制软件(SVN、git、hg、SourceSafe...)中。
您应该有一名 DBA 或专人负责将代码更改部署到您的生产环境。您可以使用部署前和部署后脚本来配置数据库项目,这样可以更轻松地使用它。
我不建议在master
中保留用户定义的对象;恕我直言,您最好在每个数据库中使用副本。如果您按上述方式管理您的代码,那么它们是否重复并不重要,因为源位于一个受管理的位置。
【讨论】:
我只使用 SQL Server 'express' 几个月,并且在生产中使用了 2005(作为 Windows SBS2008 中包含的默认值)并在笔记本电脑上运行 SQL Server 2008 r2 Express 进行开发.您知道您的方法是否适用于 Visual Express 版本(抱歉,我不使用 Visual Studio,尽管我正在考虑使用 VisualStudio 代码库项目下载 IronPython)。另外,我将成为 DBA。谢谢 不幸的是,我认为您至少需要 VS 2008 或 2010 的“专业”风格。我可能是错的,您可能想检查 MS Web 平台下载器,因为他们的产品相当改变一点点。即便如此,您仍然可以在文件系统上组织您的对象脚本并将它们保存在版本控制中。 GForge 是一款不错的免费 SVN 工具。以上是关于在 SQL Server 中创建和管理全局 Procs 和 UDF 的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 SQL Server 中创建和查询链接数据库服务器?
如何在 SQL Server 中创建和查询链接数据库服务器?
如何在 SQL Server 2005 中创建和维护最近 7 天的分区视图和存档记录?