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

Kim*_*son 8 sql sql-server-2008 visual-studio-2008

我有一个存储过程,我通过Visual Studio 2008编辑.是否有一种简单的方法来更改存储过程的名称?现在,如果我查看sproc的属性,sproc的名称将变灰.

Der*_*ken 20

EXEC sp_rename OLDNAME, NEWNAME

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


jos*_*989 12

如果您有SSMS,则可以右键单击过程名称并选择重命名.

另一种选择是删除过程并使用新名称重新创建它.


kkk*_*kkk 10

这个问题很老,已经看到了回答,但只是知道重命名SP不是一个好主意,因为它不会更新sys.procedures.

例如,创建一个SP"sp_abc",

CREATE PROCEDURE [dbo].[sp_abc]
AS
BEGIN
    SET NOCOUNT ON;
  SELECT ID,
         Name
  FROM tbl_Student WHERE IsDeleted = 0
END
Run Code Online (Sandbox Code Playgroud)

现在,重命名它

sp_rename 'sp_abc', 'sp_Newabc'
Run Code Online (Sandbox Code Playgroud)

它显示以下警告.

Caution: Changing any part of an object name could break scripts and stored procedures.
Run Code Online (Sandbox Code Playgroud)

现在看sp_Newabc

sp_helptext sp_Newabc
Run Code Online (Sandbox Code Playgroud)

你可以看到这个结果.

CREATE PROCEDURE [dbo].[sp_abc]
AS    
BEGIN    
    SET NOCOUNT ON;
  SELECT ID,    
         Name    
  FROM tbl_Student WHERE IsDeleted = 0    
END
Run Code Online (Sandbox Code Playgroud)

它仍包含旧的过程名称sp_abc.因为重命名SP时它不会更新sys.procedure.

Better solution is to drop the stored procedure and re-create it with the new name.
Run Code Online (Sandbox Code Playgroud)