重新命名資料庫物件前的考量

在 Visual Studio Premium中重新命名「資料庫物件」(Database Object) 之前,應注意下列問題:

重新命名檢視中的資料行

建置錯誤的影響

對資料產生計劃的影響

對單元測試的影響

對 Transact-SQL 指令碼的影響

重新命名檢視中的資料行

檢視包含從資料表或其他檢視選取資料行的陳述式。 檢視中使用的資料表稱為基底資料表或基礎資料表。 例如,下列程式碼會根據 HumanResources.Employee 資料表建立檢視:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

當重新命名檢視中的資料行時,基礎資料表中的資料行不會重新命名。 檢視中的名稱會設為別名,如下列範例所示:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title AS JobTitle
       FROM HumanResources.Employee

CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee
注意事項注意事項

如果檢視使用 SELECT * 從基礎資料表取得資料,* 會擴充來列出個別資料行。 重新命名的資料行會設為別名,如前面的範例所示。

如果要同時重新命名檢視和基礎資料表中的資料行,請重新命名資料表中的資料行,這會自動更新檢視中的資料行。

建置錯誤的影響

當在 Visual Studio Premium 中重新命名資料庫物件時,也會嘗試更新參考該物件的其他資料庫物件、「資料產生計劃」(Data Generation Plan)、單元測試和指令碼。 當您處理「資料庫專案」(Database Project) 時,可能會執行動作而導致建置錯誤,然後再執行其他動作來修正該建置錯誤。 例如,您可能會刪除資料表,然後再更新相依於該資料表的檢視,以移除對刪除資料表的參考。 在刪除資料表和更新檢視之間,專案就會發生建置錯誤。

如果在專案包含建置錯誤時重新命名資料庫物件,物件仍能正確重新命名。 不過,對重新命名物件的參考則不一定都能正確更新。 如果專案中發生建置錯誤,會在 [預覽變更] 對話方塊中看到警告。 如果繼續,物件會重新命名,而且會盡可能更新參考。 如果取消作業,可以先修正建置錯誤,然後再次嘗試重新命名作業。

對資料產生計劃的影響

當您在 Visual Studio Premium 或 Visual Studio Ultimate 中重新命名資料庫物件時,將嘗試更新參考該物件的資料產生計劃。 然而,您應該考慮下列事項:

  • 在重新命名物件之前,您必須儲存編輯器中開啟的任何資料產生計劃。 如果您在嘗試重新命名物件時開啟了資料產生計劃,所有開啟的資料產生計劃就會自動儲存和關閉,然後繼續執行重新命名作業。

  • 您必須手動更新使用資料繫結資料產生器的資料產生計劃。

如需詳細資訊,請參閱 使用資料產生器產生資料庫的測試資料

對單元測試的影響

單元測試中的 Transact-SQL 陳述式通常會參考資料庫中的物件,這些物件是在單元測試中的 ValidationConnectionString 和 ExecutionConnectionString 中指定。 若非如此,則可能是下面兩種情況:

  • 單元測試中的 Transact-SQL 陳述式可能參考其他資料庫中的物件。

  • 單元測試中的 Transact-SQL 陳述式可能參考位於相同資料庫,但在不同結構描述中的物件。

當在 Visual Studio Premium中重新命名資料庫物件時,也會嘗試更新方案中參考該物件的單元測試。 在前面所述的情況中,可能無法更新單元測試。 若要在重新命名資料庫物件時一併更新單元測試,您必須確定在單元測試中使用了物件的完整限定名稱。 如果在單元測試中使用完整限定名稱,只要重新命名結構描述物件,重構引擎就會自動更新這些名稱。

如需單元測試的詳細資訊,請參閱使用單元測試驗證資料庫程式碼

對 Transact-SQL 指令碼的影響

資料庫專案中的 Transact-SQL 指令碼通常會參考資料庫專案之資料庫中的結構描述物件。 若非如此,則可能是下面兩種情況:

  • 指令碼中的 Transact-SQL 陳述式可能參考其他資料庫中的物件。

  • 指令碼中的 Transact-SQL 陳述式可能參考位於相同資料庫,但在不同結構描述中的物件。

當在 Visual Studio Premium中重新命名資料庫物件時,也會嘗試更新方案中參考該物件的指令碼。 在前面所述的情況中,可能無法更新指令碼。 若要在重新命名資料庫物件時一併更新指令碼,您必須確定在指令碼中使用了物件的完整限定名稱。 如果在指令碼中使用完整限定名稱,只要重新命名結構描述物件,重構引擎就會自動更新這些名稱。

如需指令碼的詳細資訊,請參閱建立和修改資料庫指令碼

安全性

如果發生錯誤而導致重構作業無法完成,錯誤的相關資訊將會寫入應用事件記錄檔,任何具有「一般使用者」權限的使用者都可以進行檢視。 如果您的結構描述資訊被視為機密且可能出現在記錄檔中,您可能需要清除記錄檔或限制用戶端電腦的存取。

請參閱

概念

重新命名資料庫物件的所有參考