最近,我介绍了在SQL Server 2005中怎样的更改可能会破坏老的应用程序与数据库,尤其是使用过时的函数。现在,我们将讨论在您的迁移数据库中如何应用存储过程来发挥SQL Server 2005中的功能特性,同时又不与现有函数发生冲突。 假设您有一个前端应用程序,由不同的团队进行写入或管理,并且后台数据库没有经常升级。您仍然想更改SQL Server 应用程序的存储过程以利用其新特性。
您还想出色地漂亮的完成这些,而不导致数据库及前端系统发生故障。 例如,您可能想升级存储过程以便应用在SQL Server 2005的中T-_SQL的新函数中,诸如try 与catch函数,它们能够更容……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
最近,我介绍了在SQL Server 2005中怎样的更改可能会破坏老的应用程序与数据库,尤其是使用过时的函数。现在,我们将讨论在您的迁移数据库中如何应用存储过程来发挥SQL Server 2005中的功能特性,同时又不与现有函数发生冲突。
假设您有一个前端应用程序,由不同的团队进行写入或管理,并且后台数据库没有经常升级。您仍然想更改SQL Server 应用程序的存储过程以利用其新特性。您还想出色地漂亮的完成这些,而不导致数据库及前端系统发生故障。
例如,您可能想升级存储过程以便应用在SQL Server 2005的中T-_SQL的新函数中,诸如try 与catch函数,它们能够更容易的捕获复杂的错误。通常,您把现有的存储过程复制到一个新的、并行的存储过程,对此进行升级以应用新的函数,接着通过一个前端应用程序的修改版本(如果它可用)或者查询分析器来测试它们。
当您确信正在运转的新存储过程应该并且准备好在生产环境中可以应用时,就可以通过重命名这两个存储过程或者复制代码对它们进行无缝切换或者通过重命名这两个存储过程或者通过复制代码。我个人更喜欢进行重命名,因为那样允许您对之前的代码进行备份----与数据库一起备份以防意外万一。
可以说这是一个相当标准的技术,但是它之中还有这是一个很有趣的东西皱纹,我已经看到过关于涉及到它的可选参数:
CREATE PROCEDURE my_procedure {other parameters go here}, @optionalparameter Boolean=FALSE AS If @optionalparameter=TRUE Begin {NEW version of stored procedure with SQL Server 2005-specific commands goes here} End Else Begin {OLD version of stored procedure goes here} End |
另外还有一个好用的方法来对代码进行选择性测试其他有用的可选方式进行测试这些代码。当前的前端调用存储过程将不使用可选参数,而将执行原有老代码。您可以在新的前端代码中对此存储过程进行测试,之后优雅地升级到现用的存储过程。因为参数对所有现存的调用的存储过程都是可选的(即,那些没有参数),将如从前一模一样。
如果您不被允许增加新的存储过程,但是允许对现有的进行修改,这是一个绕过这个限制很好的的好方法方式。如果仍然没有遗留代码,就可以在存储过程中对假设进行逐步取消。最后,在存储过程与前端代码中分离这个参数。
作者
Serdar Yegulalp从1994年到2001年为Windows杂志写作,覆盖了广泛的技术方面。他现在是《The Windows 2000 Power Users Newsletter》一书的出版者,辛勤钻研他擅长的Windows NT, Windows 2000 and Windows XP领域,并为TechTarget写专栏。
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
TT百科:存储过程
存储的过程可以访问或修改数据库中的数据,但并不绑定到特定的数据库或对象,这提供了许多优点。
-
数据库和数据仓库的区别在哪儿?
目前,大部分数据仓库还是用数据库进行管理。数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。