例如,我的sp命名为'myStoredProcedure'。我需要在同一服务器中使用'myStoredProcedureNew'名称复制此存储过程。什么是最佳做法?
答案 0 :(得分:1)
一个重要的问题是,为什么复制程序?
如果是因为您更改了逻辑并想要测试它,那么您确实拥有相同过程的新版本。在这种情况下,最好的方法是从源代码控制中获取脚本,更改逻辑并对其进行测试。如果它可以工作,你可以将代码提交给源代码控制,如果没有,你只需恢复到以前版本的脚本。
如果您想使用第一个存储过程作为起点或模板进行第二个存储过程,那么您确实会有两个单独的过程。在这里,您应该从源代码控制中获取第一个过程,根据需要对其进行编辑以更改过程名称和逻辑,将其保存在单独的脚本文件中,并将第二个脚本添加到源代码管理中。因此,您将在源代码管理中使用两个脚本,每个脚本对应一个脚本。
如果这不能回答您的问题,请提供更多信息,说明您需要复制程序的原因。
编辑:您解释说您要为100个程序执行此操作,并且您希望在数据库中同时提供旧程序和新程序(我假设为了向后兼容)。听起来你想要为同一件事有两个不同的名字,在这种情况下,同义词可能很有用。
您可以使用引用旧过程的新名称快速创建同义词,这样您就可以开始在代码中使用新名称。然后当(如果?)您准备好物理删除旧过程时,您可以删除同义词并重命名过程。这是否是一个好的选择取决于您计划如何管理从旧程序名称到新程序名称的转换,以及如何在源代码管理中管理DDL。
如果同义词在您的案例中没用,那么您可以始终按照我所描述的第二个场景中的步骤操作。使用小脚本复制和编辑100个文件应该很容易,当然只要你使用源代码控制就可以轻松撤消错误。