sql-server-2008 - 如何用新名称复制存储过程?

标签 sql-server-2008 stored-procedures copy

例如,我有一个名为“myStoredProcedure”的 sp。我需要在同一服务器中复制这个名称为“myStoredProcedureNew”的存储过程。最佳实践是什么?

最佳答案

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

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

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

如果这不能回答您的问题,请提供更多有关为何需要复制该过程的信息。

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

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

如果同义词对您的情况没有用,那么您可以随时按照我描述的第二种情况中的步骤进行操作。使用小脚本复制和编辑 100 个文件应该很容易,当然,只要您使用源代码控制,就很容易撤消错误。

关于sql-server-2008 - 如何用新名称复制存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008354/

相关文章:

sql-server - TSQL 返回结果是否比 SQL Server 中的存储过程更快

mysql - 无法在 cPanel 中创建此存储过程

macos - 操作系统 : How to force multiple-file-copy operation to plough through errors

java - 在 Java 中创建复制现有的 Excel 文件

tfs 将文件夹从一个团队项目复制到另一个

sql - MS SQL 中两列之一的 SELECT MAX(column) AND DISTINCT

sql-server - 请求失败或者服务没有及时响应?

sql - 根据月数将列返回为行

Mysql根据逻辑在存储过程中动态构建查询字符串

php - 尝试获取存储过程结果时出错,但普通查询工作正常