共用方式為


SQL 專案套件參考概觀

適用於:Microsoft Fabric 中的 SQL ServerAzure SQL 資料庫 Azure SQL 受控執行個體 SQL 資料庫

SQL 專案中的套件參考能讓您參考來自其他專案或 NuGet 套件的資料庫物件。 透過套件參考新增至專案的資料庫物件可以是相同資料庫的一部分、相同伺服器上的不同資料庫,或是不同伺服器上的不同資料庫。

注意

套件參考是新開發中參考資料庫物件的建議方法。 只有 SDK 樣式 SQL 專案 (預覽版) 才支援參考 NuGet 套件 。

資料庫物件套件參考

套件參考是數種方法之一,可將資料庫物件作為資料庫參考新增至 SQL 專案。 套件參考可以包含相同資料庫的物件、相同伺服器上的不同資料庫,或是不同伺服器上的不同資料庫。 套件參考可用來將資料庫分解成更小、更易於管理的專案,這有助於縮短在本機迭代開發過程中建置立專案所需的時間。

參考兩個套件和用於資料庫參考的一個專案之 SQL 專案範例的螢幕擷取畫面。

SQL 專案檔範例和語法

套件參考會透過 .sqlproj 檔案中的項目新增至 SQL 專案,類似於 C# 專案。 當套件參考位於相同伺服器上的不同資料庫時,套件參考中會包含 <DatabaseSqlCmdVariable> 元素。 當套件參考位於不同伺服器上的不同資料庫時,套件參考中會包含 <ServerSqlCmdVariable> 元素。 相同資料庫的套件參考不包含 <ServerSqlCmdVariable><DatabaseSqlCmdVariable> 元素。

下列範例包含對 Contoso.AdventureWorks.SalesLT 套件的套件參考,作為相同資料庫的資料庫參考,其中套件中的物件成為 SQL 專案中資料庫模型的一部分:

...
  <ItemGroup>
    <PackageReference Include="Contoso.AdventureWorks.SalesLT" Version="1.1.0" />
  </ItemGroup>
</Project>

系統資料庫

SQL 系統資料庫 (mastermsdb) 作為資料庫參考套件發佈在 NuGet.org 上。 這些套件包含系統資料庫的結構描述,並且可用作 SQL 專案中的套件參考。 系統資料庫套件的版本與其相關的 SQL Server 版本保持一致。 例如,SQL Server 2022 的 master 系統資料庫套件是 Microsoft.SqlServer.Dacpacs.Master 版本 160.2.1,可新增至 SQL 專案作為套件參考:

...
  <ItemGroup>
    <PackageReference Include="Microsoft.SqlServer.Dacpacs.Master" Version="160.2.1" />
  </ItemGroup>
</Project>

次要版本變更會反映錯誤修復,以及 SQL Server 版本內結構描述的次要變更。

可用的系統資料庫套件如下:

封裝 dacpac NuGet 套件

資料庫參考套件是包含 .dacpac 檔案的 NuGet 套件。 NuGet 套件可以發佈至 NuGet 摘要,如 Azure Artifacts,以用於 SQL 專案。 建立此套件會遵循為其他類型的專案建立 NuGet 套件的相同程序。 如需詳細資訊,請參閱使用 dotnet CLI 建立套件

SQL 專案程序的套件參考摘要的螢幕擷取畫面。

若要將 .sqlproj 檔案封裝為 NuGet 套件,請使用命令列中的 dotnet pack 命令。 根據預設,dotnet pack 命令會從 bin/Debug 資料夾中的 .sqlproj 檔案建立 NuGet 套件。

套件元資料可由 .sqlproj 檔案中 <PropertyGroup> 元素內的屬性指定。 例如,下列屬性會指定套件識別碼、版本、描述、作者和公司:

<PackageId>Contoso.AdventureWorks.SalesLT</PackageId>
<Version>1.0.0</Version>
<Description>AdventureWorks database SalesLT objects</Description>
<Authors>DevTeam</Authors>
<Company>Contoso Outdoors</Company>

dotnet pack 命令所建立的 .nupkg 檔案可以發佈至 NuGet 摘要,以用於 SQL 專案。 此資料庫物件可由擁有套件存取權限的任何人檢視,因此應該考慮選取公用或私人摘要位置。 如需詳細資訊,請參閱使用私人套件摘要裝載