Share via


重新命名預存程序

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中重新命名預存程序。

本主題內容

開始之前

限制事項

  • 程序名稱必須符合 識別碼的規則。

  • 重新命名預存程序會保留 object_id 及特別指派給此程序的所有權限。 卸除並重新建立物件會建立新的 object_id,並移除特別指派給此程序的任何權限。

  • 重新命名預存程序不會變更 sys.sql_modules 目錄檢視 definition 資料行中對應的物件名稱。 若要那麼做,您必須卸除並重新建立具有新名稱的預存程序。

  • 變更程序的名稱或定義後,若未更新物件來反映對程序所做的變更,則可能導致相依物件執行失敗。 如需詳細資訊,請參閱 檢視預存程序的相依性

安全性

權限

CREATE PROCEDURE
需要資料庫的 CREATE PROCEDURE 權限,以及要在其中建立程序之結構描述的 ALTER 權限,或者需要 db_ddladmin 固定資料庫角色的成員資格。

ALTER PROCEDURE
需要程序的 ALTER 權限,或 db_ddladmin 固定資料庫角色的成員資格。

使用 SQL Server Management Studio

若要重新命名預存程序

  1. 在 [物件總管] 中,連接到資料庫引擎的執行個體,然後展開該執行個體。
  2. 依序展開 [資料庫] 、程序所屬的資料庫,以及 [可程式性]
  3. 判斷預存程序的相依性
  4. 展開 [預存程序],以滑鼠右鍵按一下要重新命名的程序,然後按一下 [重新命名]。
  5. 修改程序名稱。
  6. 修改在任何相依物件或指令碼中參考的程序名稱。

使用 TRANSACT-SQL

若要重新命名預存程序

  1. 連線至資料庫引擎。
  2. 在標準列中,按一下 [新增查詢]
  3. 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。 這個範例示範如何藉由卸除程序,再以新名稱重新建立程序的方式重新命名程序。 第一個範例會建立 'HumanResources.uspGetAllEmployeesTest預存程序。 第二個範例會將預存程序重新命名為 HumanResources.uspEveryEmployeeTest
--Create the stored procedure.  
USE AdventureWorks2022;  
GO  

CREATE PROCEDURE HumanResources.uspGetAllEmployeesTest  
AS  
    SET NOCOUNT ON;  
    SELECT LastName, FirstName, Department  
    FROM HumanResources.vEmployeeDepartmentHistory;  
GO  
  
--Rename the stored procedure.  
EXEC sp_rename 'HumanResources.uspGetAllEmployeesTest', 'uspEveryEmployeeTest'; 

另請參閱

ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
建立預存程序
修改預存程序
刪除預存程序
檢視預存程序的定義
檢視預存程序的相依性