2

例如,我将 sp 命名为“myStoredProcedure”。我需要在同一台服务器上复制这个名为“myStoredProcedureNew”的存储过程。最佳做法是什么?

4

1 回答 1

2

一个重要的问题是,为什么要复制程序?

如果是因为你改变了逻辑并想测试它,那么你真的有一个相同程序的新版本。在这种情况下,最好的方法是从源代码管理中获取脚本,更改逻辑并对其进行测试。如果有效,您可以将代码提交到源代码管理,如果无效,您只需恢复到脚本的先前版本。

如果您想使用第一个存储过程作为起点或模板来创建第二个存储过程,那么您确实会有两个单独的过程。在这里,您应该从源代码管理中获取第一个过程,根据需要对其进行编辑以更改过程名称和逻辑,将其保存在单独的脚本文件中,并将第二个脚本添加到源代码管理中。因此,您将在源代码管理中拥有两个脚本,每个过程一个。

如果这不能回答您的问题,请提供更多信息,说明您需要复制该程序的原因。

编辑:您解释说您想为 100 个过程执行此操作,并且您希望在数据库中同时使用新旧过程(我假设是为了向后兼容)。听起来您想为同一事物使用两个不同的名称,在这种情况下,同义词可能很有用。

您可以使用引用旧过程的新名称快速创建同义词,因此您可以开始在代码中使用新名称。然后,当(如果?)您准备好物理删除旧程序时,您可以删除同义词并重命名程序。这是否是一个好的替代方案取决于您计划如何管理从旧过程名称到新过程名称的转换,以及您如何在源代码控制中管理 DDL。

如果同义词在您的情况下没有用,那么您始终可以按照我描述的第二个场景中的步骤进行操作。用一个小脚本应该很容易复制和编辑这 100 个文件,当然,只要您使用源代码管理,那么很容易撤消错误。

于 2012-04-04T09:43:57.723 回答