繁体   English   中英

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

[英]Change name of stored procedure in SQL Server 2008

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

EXEC sp_rename OLDNAME, NEWNAME

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

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

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

这个问题很老,已经看到了回答,但只是知道重命名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

现在,重命名它

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。 因为重命名SP时它不会更新sys.procedure。

Better solution is to drop the stored procedure and re-create it with the new name.
sp_rename <oldname> <newname>

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

重命名存储过程sql server:

正确答案: 查看此文章。

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

在SQL Server中重命名存储过程

EXEC sp_rename 'Proc_OldSpName', 'Proc_NewSpName';

正如kkk他的回答中提到的那样

Better solutiondrop存储过程并使用新名称re-create它。

去做这个

DROP PROCEDURE [dbo].[Procedure_Name]

然后

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM