在SQL Server 2008中更改存储过程的名称。

8

我有一个存储过程需要通过Visual Studio 2008进行编辑。是否有一种简单的方法可以更改存储过程的名称?目前,如果我查看存储过程的属性,存储过程的名称是灰色的。


是的,这很奇怪,我无法在VS2008中重命名,以前从未注意过。在管理工具中可以操作,但在VS2008中却无法实现。 - Andy Robinson
7个回答

20

EXEC sp_rename OLDNAME, NEWNAME

假设您可以通过VS2008执行SQL语句。


12
如果您有SSMS,则可以右键单击过程名称并选择重命名。
另一种选择是删除该过程,然后使用新名称重新创建它。

10

这个问题非常老,已经被视为已解决,但是只是想知道重命名存储过程不是一个好主意,因为它不会更新sys.procedures。

例如,创建一个名为"sp_abc"的存储过程,

CREATE PROCEDURE [dbo].[sp_abc]
AS
BEGIN
    SET NOCOUNT ON;
  SELECT ID,
         Name
  FROM tbl_Student WHERE IsDeleted = 0
END

现在,将其重命名

sp_rename 'sp_abc', 'sp_Newabc'

它显示以下警告。

Caution: Changing any part of an object name could break scripts and stored procedures.

现在看看sp_Newabc

sp_helptext sp_Newabc

你可以看到这个结果。

CREATE PROCEDURE [dbo].[sp_abc]
AS    
BEGIN    
    SET NOCOUNT ON;
  SELECT ID,    
         Name    
  FROM tbl_Student WHERE IsDeleted = 0    
END

它仍然包含旧的存储过程名称sp_abc。 因为当您重命名存储过程时,它不会更新sys.procedure。

Better solution is to drop the stored procedure and re-create it with the new name.

1
重命名 SQL Server 中的存储过程。
EXEC sp_rename 'Proc_OldSpName', 'Proc_NewSpName';

1
sp_rename <oldname> <newname>

在SQL Server 2008 R2中,sys.procedures似乎已经更新了。(在测试环境中)

语法错误。正确的是 sp_rename <oldname>, <newname>。 - dipi evil

1

重命名 SQL Server 存储过程:

正确答案请参考:查看本文。

用法:sp_rename'[old_object_name]','[new_object_name]','[object_type]'


0

正如kkk他的回答中提到的

更好的解决方案删除存储过程并使用新名称重新创建它。

要做到这一点

DROP PROCEDURE [dbo].[Procedure_Name]

那么

Create Procedure [dbo].[GetEmployees]  
as 
....

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接