提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2019-09-20 14:41:44.967|阅读 281 次
概述:从另一个团队继承数据库?在格式化SQL的方式上更改了团队策略?当您开发它时,什么阻止您很好地格式化整个数据库的代码?手动的过程可能需要比预期更长的时间。本篇文章演示了使用SQL Compare和SQL Prompt在单个操作中重新格式化整个数据库的简单3步方法。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
SQL Compare是一款比较和同步SQL Server数据库结构的工具。现有超过150,000的数据库管理员、开发人员和测试人员在使用它。当测试本地数据库,暂存或激活远程服务器的数据库时,SQL Compare将分配数据库的过程自动化。
从另一个团队继承数据库?在格式化SQL的方式上更改了团队策略?当您开发它时,什么阻止您很好地格式化整个数据库的代码?手动的过程可能需要比预期更长的时间。本篇文章演示了使用SQL Compare和SQL Prompt在单个操作中重新格式化整个数据库的简单3步方法。
首先,为开发数据库生成最新的构建脚本,包括表、代码模块等等。您可以使用SQL Prompt根据团队的标准重新格式化整个构建脚本。到目前为止一切都很简单,但接下来呢?
下一个任务是将这些格式更改保存到开发数据库中。您需要设计一个迁移脚本,该脚本在执行时会将每个代码模块、作为视图的对象、表值函数、标量函数、触发器和过程,以应用新的代码格式。这样,这些例程的新来源将保留在数据库中。但是,由于复杂的对象间引用,这可能不像通过构建脚本并将CREATE语句更改为ALTER那么简单。当您尝试运行这些ALTER命令时,您可能会遇到麻烦。
例如,除了在视图、另一个函数或过程中引用之外,函数也可以绑定到表列上的计算列、默认约束或检查约束。如果您尝试以这种方式更改正在使用的函数,您将收到错误:
Cannot ALTER '<name of referenced object>' because it is being referenced by object '<Name of referencing object>'.
为避免这种情况,您必须在更改函数之前删除引用和约束,然后替换它们。如果一个函数被引用很多,这使得改变函数相当棘手。此外,如果WITH SCHEMABINDING正在使用,将强制执行依赖项。这意味着在更改之前必须更改所有下游例程以删除模式绑定。总而言之,它可能会变得复杂。
成功执行了迁移脚本之后,您还需要在源代码管理中更新表和代码模块中的各个对象脚本,以反映数据库的新格式化版本。当然,源代码管理中的规范源代码是唯一可以保存CREATE TABLE语句格式以及所有注释的地方。
幸运的是,一旦您生成了构建脚本,并使用SQL Prompt对其进行了格式化,SQL Compare可以为您完成剩下的这项艰苦工作。
步骤1:在SSMS中生成并格式化构建脚本
第一项任务是生成最新的数据库构建脚本。最简单的方法是在沙箱中使用SSMS Generate Scripts向导,在开发数据库的最新副本上。在SSMS对象资源管理器窗格中,右键单击要进行美化的源代码的开发数据库。然后导航任务 | 生成脚本...以启动向导。
我们将为新数据库生成所有内容,并将其放在新的查询窗口中。
向导的其余部分是不言而喻的。您将在新的查询窗口中找到构建脚本。
我们不想重建我们的开发数据库,因此,在构建脚本中,我们需要将对数据库的所有引用更改为新数据库的名称。这些引用将被SSMS括起来,因此您应该在全局搜索中包含这些括号,并在数据库名称上替换表达式,无论它们在何处引用。因此,如果您的数据库名为Snibbo,并且您希望构建脚本创建NewSnibbo,则找到[Snibbo]并替换为[NewSnibbo]。通过这样做,即使“find”字符串在注释、字符串或其他符号的其他地方使用,操作也会更加安全。因为除非您使用数据库名称作为数据库对象的名称,否则它们将不带括号。即使您不明智地调用数据库[Select],如果将其更改为[SelectCopy] ,也不会损害您的查询。
脚本开头的CREATE DATABASE语句需要更改为最简单的...
CREATE DATABASE <nameOfNewDatabase>
然后,您应该可以通过单击菜单项SQL Prompt > Format SQL轻松地重新格式化此脚本。(或按Ctrl K Ctrl Y)。由于您可能已选择删除不必要的方括号,因此最好先更改数据库名称。
步骤2:使用SQL Compare自动生成部署脚本
下一个任务是使SQL Compare创建一个部署脚本,该脚本可以改变开发数据库中的每个代码模块以反映新的格式。
此时您有两种选择:
将重新格式化的构建脚本保存到文件中,并将其与当前数据库进行比较,或
使用重新格式化的构建脚本来创建新数据库并从中进行同步。
我将演示第二种技术,因此我们需要使用构建脚本临时创建一个新版本的数据库,该版本将在其模块中包含所有重新格式化的代码。
在这个例子中,使用Sandbox开发服务器,我已经使用了一个名为PhilsScripts的数据库,其中包含大量的诊断脚本。已经生成了一个构建脚本,对其进行了格式化,并使用该构建脚本在名为BetterPhilsScripts的服务器上创建了一个新数据库。然后执行SQL Compare并指定新格式化的BetterPhilsScripts作为源,并将PhilsScripts指定为目标。
我们比较两者并发现SQL Compare已检测到SQL Prompt所做的所有更改。然后,我们检查部署脚本,当我们满意时,我们会部署更改。
步骤3:更新源代码管理
使用SQL Compare,您可以将数据库保存在脚本目录中,或更新源控制系统的现有脚本目录。这会将每个对象保存在自己的文件中,但也可以维护构建脚本。我使用PowerShell脚本来执行此操作;当我在开发数据库中一次更改多个对象时,它会定期保存对象脚本,然后我可以使用Github Desktop或Gmaster通过本地存储库进行检查。
整理
因此,通过SQL Prompt和SQL Compare的组合,不仅可以重新格式化整个数据库或模式的例程,还可以更新单个源文件或构建脚本以进行源代码控制。如果您使用“迁移”方法进行数据库开发,则还可以将SQL Compare同步脚本保存为源代码控制,作为迁移脚本的基础。这一切都使得重新格式化SQL代码变得更加愉快,而不仅仅是一件苦差事。
本教程到这里就完结了,希望这篇文章对您有所帮助~喜欢的朋友可以下载SQL Prompt和SQL Compare正式版尝试一下~
彩票走势图相关的文章:
SQL Compare教程:工作示例——比较和部署两个数据库(上)
SQL Compare教程:工作示例——比较和部署两个数据库(下)
SQL Compare快照:轻量级数据库版本控制和回滚机制(上)
SQL Compare快照:轻量级数据库版本控制和回滚机制(下)
SQL Compare教程:使用SQL Compare来维护对象级源代码控制(上)
SQL Compare教程:使用SQL Compare来维护对象级源代码控制(下)
想要购买SQL Compare正版授权,或了解更多产品信息请点击
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢