SQL语法提示工具SQL提示,如何智能重命名和拆分

  

根据数据库的对象名称,语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读,当开发者不大熟悉脚本时尤其有用. SQL提示安装即可使用,能大幅提高编码效率。此外,用户还可根据需要进行自定义,使之以预想的方式工作。

SQL提示提供的许多工具都是您每天编写t - SQL代码时都会或多或少使用的工具. SQL中提示的重构工具更像是您在沙漠中进行长时间远足时所使用的蛇咬伤工具包中的工具。您希望不必经常使用它们,但是当您使用它们时,它们将非常有价值。一个不太常见但较难的需求是更改对象的“公共接口”,例如通过更改对象或列的名称,甚至通过拆分表来实现更好的设计。

在地对地导弹对象资源管理器中选择了一个对象后,SQL提示的“向导将生成一个脚本来重命名该对象,并修改引用重命名对象的对象。将以正确的顺序进行修改以维护数据库的完整性。

由于数据库中可能存在所有依赖项,因此更改代码对象,表或列的名称可能是一项费力甚至是艰巨的任务。在所有代码和约束中,您必须确保了解一项看似简单的更改的所有可能的副作用。合理地,手动进行这些更改可能只需要几个小时,但是谁有几个小时呢?

SQL Server提供了一些工具来帮助您发现依赖关系,例如系统。sql_expression_dependencies目录视图,或者您可以在地对地导弹中使用对象依赖关系查看器,只需右键单击对象,然后选择”,尽管UI有点依靠细节。

另外,Redgate的SQL依赖跟踪工具与ssm集成在一起,并为任何选定对象提供详细的依赖关系图。例如,在地对地导弹对象资源管理器中,右键单击采购。未,在WideWorldImporters数据库中,选择”。图1显示了许多引用它的对象。

 SQL语法提示工具SQL提示,如何智能重命名和拆分

如果您需要手动更改名称,此图表明您要完成的任务的艰巨性。幸运的是,我们可以使用SQL提示的功能,该功能将自动修改当前数据库中几乎所有对重命名对象的引用。动态SQL引用将不被处理,因此此功能不会消除对可靠测试计划的需要。

我们将从最简单的数据库重构任务开始,重命名代码模块,然后逐步提高复杂性和风险性,重命名表,最后重命名列。

假设您编写了一个新的存储过程,Purchasing.PurchaseOrder ListFinalized美元该存储过程调用了一个现有的存储过程采购。PurchaseOrder美元列表,以获取仅包含最终定单的结果集。

创建过程Purchasing.PurchaseOrder美元列表   (   @IsOrderFinalized一点   ),   开始   选择PurchaseOrders.PurchaseOrderID,   PurchaseOrders.OrderDate,   PurchaseOrders.IsOrderFinalized   从Purchasing.PurchaseOrders   在IsOrderFinalized=@IsOrderFinalized;   结束;   去   创建过程Purchasing.PurchaseOrder ListFinalized美元   作为   开始   执行采购[PurchaseOrder表美元]。   @IsOrderFinalized=1;   结束;

现在,您决定需要将现有采购。PurchaseOrder美元列表过程的名称更改为PurchaseOrder ListAll美元,以阐明它将返回所有采购订单,无论它们是否已完成。

如果您已经在对象资源管理器中打开服务器,则可以在查询窗口中右键单击名称,然后选择”。如果自创建对象以来尚未刷新列的表,则可能只会使您靠近列表中的对象。

在地对地导弹对象资源管理器中找到存储过程之后,您可以通过按或右键单击并选择来对其进行,但是所有要做的就是对对象进行重命的名,因此任何仍通过其旧名称引用该对象的现有代码都将对其进行重命名,现在都将失败。

相反,我们将使用SQL提示的功能.Purchasing。PurchaseOrder列表在美元对象资源管理器中右键单击,然后选择”。在对话框中将名称更改为PurchaseOrder ListAll美元,如图2所示。

 SQL语法提示工具SQL提示,如何智能重命名和拆分

单击”,您将看到SQL提示将执行的任务列表,以重命名对象并调整按名称引用该对象的所有相关对象。

<李>

放下程序(采购)。(PurchaseOrder表美元)

<李>

建立程序(采购)。(PurchaseOrder ListAll美元)

<李>

变更程序(采购)。(PurchaseOrder ListFinalized美元)

执行生成的脚本,SQL提示将进行更改。如果有错误,脚本将失败,并将回滚所有更改。

SQL语法提示工具SQL提示,如何智能重命名和拆分