共用方式為


建立和修改資料庫與伺服器物件

「資料庫物件」(Database Object) 會定義資料庫內容的結構。 這些物件包含在「資料庫專案」(Database Project) 中,而專案中也可能包含「資料產生計劃」(Data Generation Plan) 和指令碼。 伺服器物件會定義存在資料庫伺服器上但不在資料庫中的物件,例如登入、憑證或自訂錯誤訊息。 伺服器物件包含在伺服器專案中。

在 [方案總管] 中,資料庫和伺服器物件的定義包含在檔案中,並且在資料庫或伺服器專案中依照型別分組。 當您使用資料庫和伺服器物件時,可能會發現使用 [結構描述檢視] 更為直覺,因為它會依照型別分組物件。 如果資料庫專案中的檔案將 Build Type 標示為 [組建],系統就會加以剖析,以便找出資料庫物件定義。 包含在資料庫專案中但具有不同 Build Type 的檔案不會被視為包含資料庫物件,而且不會出現在 [結構描述檢視] 中。

一般工作

下表列出支援此案例之一般工作的說明,以及詳細資訊的連結,這些資訊可幫助您成功完成這些工作。

工作

支援內容

獲得實務練習:您可以執行入門逐步解說,熟悉如何建立資料庫專案及其物件,以及如何修改這些物件。

進一步了解資料庫和伺服器物件:在本主題後面的內容中,您可以進一步了解資料庫和伺服器物件,包括如何解析名稱、如何在物件定義中參考資料庫名稱,以及如何驗證物件。

  • 物件定義

  • 方案總管和結構描述檢視中的物件

  • 物件名稱解析

  • 參考物件定義中的資料庫名稱

  • 物件層級的 SET 選項

  • 物件驗證

了解資料庫物件之間的相依性:您可以檢視資料庫物件所依存的物件,以及相依於該物件的物件。

將物件加入至資料庫或伺服器專案:您可以使用下列任何一種方法,將物件加入至資料庫或伺服器專案:

  • 您可以從指令碼或是更新的資料庫或伺服器匯入物件。

  • 您可以在預設結構描述或特定結構描述中建立物件。

  • 您可以將包含物件定義的檔案加入至專案。

  • 將物件加入至專案之後,您就可以自訂物件層級選項 (稱為 SET 選項)。

  • 您可以指定資料庫物件的權限。

將特製化物件加入至資料庫或伺服器專案:若要將某些物件型別加入至專案,您必須遵循該物件型別特有而且稍微不同的程序。

  • 您可以定義資料表和索引選項。

  • 您可以將使用者加入至角色。

  • 您可以定義全文檢索目錄。

  • 您可以定義檔案群組和檔案。

修改資料庫或伺服器物件:您可以在伺服器或資料庫專案中修改物件的定義。 您也可以修改這些物件的物件層級 SET 選項。

從資料庫或伺服器專案中移除物件:您可以從資料庫或伺服器專案中刪除物件,以便永久移除它們。 您也可以暫時排除仍在開發中的物件。

自訂資料庫和伺服器物件的範本:您可以檢視和修改建立資料庫與伺服器物件時所使用的範本。

疑難排解問題:您可以進一步了解如何疑難排解資料庫和伺服器專案的常見問題。

物件定義

資料庫和伺服器物件會定義在 .sql 檔案的集合中,而這些檔案會儲存在專案資料夾中。 大多數物件都會以個別檔案定義。 不過,資料表中的資料行以及預存程序或函式的參數則是例外。 資料行是在包含資料表定義的檔案中指定,而參數是在包含預存程序或函式的檔案中指定。

.sql 檔案的 [建置動作] 屬性會指出是否要剖析檔案,以便確認它是否包含資料庫物件的定義。 根據預設,包含資料庫物件定義的檔案會設定為 [組建],而其他 .sql 指令碼和其他檔案則會設定為 [不在組建中]。 [建置動作] 屬性也會決定建置指令碼是否包含此檔案。

每個物件的名稱都會決定其檔名,而物件的型別則會決定其預設的副檔名。 例如,函式位於名為 ObjectName.function.sql 的檔案中,而預存程序則為於名為 ObjectName.proc.sql 的檔案中。

方案總管和結構描述檢視中的物件

在 [方案總管] 中,您可以使用專案所包含的檔案以及包含物件定義的檔案。 您無法在 [方案總管] 中使用重新命名重構。 當您想要使用檔案 (例如將專案簽入版本控制) 時,請使用 [方案總管]。

在 [結構描述檢視] 中,您可以使用資料庫物件。 當您要使用物件而非包含其定義的檔案時,請使用 [結構描述檢視]。 例如,您可以使用 [結構描述檢視] 來建立資料庫物件。

物件名稱解析

一般來說,您應該使用 SQL Server 所用的相同規則來解析物件名稱。 某些 sysobjects 可能需要完整限定,才能正確解析。 如果在牽涉到非完整限定之物件名稱的情況下發生錯誤,或者您注意到有非預期的行為,則應該完整限定該物件名稱,以嘗試解決問題。

參考物件定義中的資料庫名稱

您可以在資料庫專案的物件定義指令碼中使用 $(databasename) 語彙基元,但有下列限制:

  • 您必須用方括弧括住語彙基元,如下列範例所示:

    [$(databasename)]

  • 您不得使用語彙基元來指定三個部分的名稱,如下列範例所示:

    [$(databasename)].[dbo].[Table1]

下列範例示範如何在預存程序中使用 $(database) 名稱語彙基元:

CREATE PROCEDURE [dbo].[MyProcedure]
@param1 INT = 0,
@param2 INT
AS
ALTER DATABASE [$(databasename)]
MODIFY FILEGROUP [FileGroup1] DEFAULT
RETURN 0

物件層級的 SET 選項

除了可以針對資料庫專案設定 SET 選項以外,您也可以在個別的資料庫物件上指定兩個選項的值。 這兩個選項為 ANSI NULLS 和引號識別項 (Quoted Identifier)。 根據預設,每個物件的 SET 選項會與資料庫專案的 SET 選項相符。 您可以將這兩個選項設定為 Project default、On 或 Off。 建置資料庫專案時,只有設定值與專案預設值不同的物件層級 SET 選項會在建置指令碼中產生指令碼。

注意事項注意事項

當您使用 [匯入指令碼] 或 [匯入資料庫結構描述] 命令時,將不會匯入個別資料庫物件的 SET選項值。 您必須在 [屬性] 視窗中進行設定。 如需詳細資訊,請參閱 HOW TO:指定物件層級的 SET 選項

物件驗證

當您將變更儲存至所建立或修改的資料庫物件時,即會執行驗證。 若物件定義發生任何錯誤,將顯示在 [錯誤清單] 視窗中。 如果按兩下錯誤訊息,會開啟物件定義讓您修正錯誤。 如果資料庫物件包含錯誤,[結構描述檢視] 中的代表圖示會顯示紅色的驚嘆號。

注意事項注意事項

如果您所使用的版本不支援資料庫物件,代表該物件的圖示會顯示黃色的倒三角形。

如需如何疑難排解資料庫物件相關問題的詳細資訊,請參閱疑難排解資料庫專案、建置和部署的問題

相關案例

請參閱

概念

建置和部署資料庫到開發用或實際執行環境

建置和部署資料庫到隔離的開發環境

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

撰寫和變更資料庫程式碼