重新命名預存程序
本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 重新命名 SQL Server 2012 中的預存程序。
本主題內容
開始之前:
限制事項
安全性
若要重新命名預存程序,使用:
SQL Server Management Studio
Transact-SQL
開始之前
限制事項
程序名稱必須符合識別碼的規則。
重新命名預存程序不會變更 sys.sql_modules 目錄檢視 definition 資料行中對應的物件名稱。 因此,我們建議您不要重新命名這個物件類型。 相反地,請卸除預存程序,再利用它的新名稱來重新建立預存程序。
變更程序的名稱或定義後,若未更新物件來反映對程序所做的變更,則可能導致相依物件執行失敗。 如需詳細資訊,請參閱<檢視預存程序的相依性>。
安全性
權限
CREATE PROCEDURE
需要資料庫的 CREATE PROCEDURE 權限,以及將在其中建立程序之結構描述的 ALTER 權限,或者需要 db_ddladmin 固定資料庫角色的成員資格。ALTER PROCEDURE
需要程序的 ALTER 權限,或 db_ddladmin 固定資料庫角色的成員資格。
[Top]
使用 SQL Server Management Studio
若要重新命名預存程序
在 [物件總管] 中,連接到 Database Engine 的執行個體,然後展開該執行個體。
依序展開 [資料庫]、程序所屬的資料庫,以及 [可程式性]。
展開 [預存程序],以滑鼠右鍵按一下要重新命名的程序,然後按一下 [重新命名]。
修改程序名稱。
修改在任何相依物件或指令碼中參考的程序名稱。
[Top]
使用 Transact-SQL
若要重新命名預存程序
連接到 Database Engine。
在標準列中,按一下 [新增查詢]。
將下列範例複製並貼到查詢視窗中,然後按一下 [執行]。 這個範例示範如何藉由卸除程序,再以新名稱重新建立程序的方式重新命名程序。 第一個範例會建立 'HumanResources.uspGetAllEmployeesTest 預存程序。 第二個範例會將預存程序重新命名為 HumanResources.uspEveryEmployeeTest。
--Create the stored procedure.
USE AdventureWorks2012;
GO
IF OBJECT_ID ( 'HumanResources.uspGetAllEmployeesTest', 'P' ) IS NOT NULL
DROP PROCEDURE HumanResources.uspGetAllEmployeesTest;
GO
CREATE PROCEDURE HumanResources.uspGetAllEmployeesTest
AS
SET NOCOUNT ON;
SELECT LastName, FirstName, Department
FROM HumanResources.vEmployeeDepartmentHistory;
GO
--Rename the stored procedure.
USE AdventureWorks2012;
GO
IF OBJECT_ID ( 'HumanResources.uspGetAllEmployeesTest', 'P' ) IS NOT NULL
DROP PROCEDURE HumanResources.uspGetAllEmployeesTest;
GO
CREATE PROCEDURE HumanResources.uspEveryEmployeeTest
AS
SET NOCOUNT ON;
SELECT LastName, FirstName, Department
FROM HumanResources.vEmployeeDepartmentHistory;
GO
[Top]
請參閱
參考
ALTER PROCEDURE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)