Sdílet prostřednictvím


Použití projektů SQL ve stylu sady SDK s rozšířením SQL Database Projects (Preview)

Důležitý

Azure Data Studio se vyřazuje 28. února 2026. Doporučujeme, abyste používali Visual Studio Code. Další informace o migraci do editoru Visual Studio Code najdete v tématu Co se děje se sadou Azure Data Studio?

Tento článek představuje projekty SQL ve stylu sady SDK microsoft.Build.Sql v rozšíření SQL Database Projects v nástroji Azure Data Studio nebo Visual Studio Code. SQL projekty ve stylu SDK jsou obzvláště výhodné pro aplikace, které jsou dodávány prostřednictvím CI/deployment kanálů nebo sestavovány v cross-platformových prostředích. Počáteční oznámení je k dispozici v TechCommunity.

Poznámka:

Microsoft.Build.Sql je aktuálně ve verzi Preview.

Vytvoření databázového projektu ve stylu sady SDK

Databázový projekt ve stylu sady SDK můžete vytvořit z prázdného projektu nebo z existující databáze.

Prázdný projekt

V zobrazení Databázové projekty vyberte tlačítko Nový projekt a zadejte název projektu do textového vstupu, který se zobrazí. V dialogovém okně Vybrat složku , které se zobrazí, zvolte adresář pro složku, .sqlproj soubor a další obsah projektu, který se má nacházet.

Ve výchozím nastavení je zaškrtnuté políčko pro projekt ve stylu sady SDK (Preview). Po dokončení dialogového okna se prázdný projekt otevře a zobrazí v zobrazení Databázové projekty pro úpravy.

Ze stávající databáze

V zobrazení Projektu vyberte tlačítko Vytvořit projekt z databáze a připojte se k SQL Serveru. Po navázání připojení vyberte ze seznamu dostupných databází databázi a nastavte název projektu. Vyberte cílovou strukturu extrakce.

Ve výchozím nastavení je zaškrtnuté políčko pro projekt ve stylu sady SDK (Preview). Po dokončení dialogového okna se otevře nový projekt a obsahuje skripty SQL pro obsah vybrané databáze.

Sestavení a publikování

Z rozhraní Azure Data Studio a editoru Visual Studio Code se sestavení a publikování projektu SQL ve stylu sady SDK dokončí stejným způsobem jako předchozí formát projektu SQL. Další informace o tomto procesu najdete v tématu Sestavení a publikování projektu.

Pokud chcete vytvořit projekt SQL ve stylu sady SDK z příkazového řádku ve Windows, macOS nebo Linuxu, použijte následující příkaz:

dotnet build

Soubor .dacpac, který je výsledkem sestavení SQL projektu ve stylu SDK, je kompatibilní s nástroji přidruženými k architektuře aplikace datové vrstvy (.dacpac, .bacpac), včetně SqlPackage a GitHub sql-action.

Možnosti projektu

V projektech SQL existuje několik možností, které lze zadat v .sqlproj souboru, které mají vliv na model databáze buď při sestavení projektu nebo nasazení. Následující části popisují některé z těchto funkcí, které jsou k dispozici pro projekty Microsoft.Build.Sql.

Cílová platforma

Vlastnost cílové platformy je obsažena ve DSP značce v .sqlproj souboru pod položkou <PropertyGroup> . Cílová platforma se používá během sestavování projektu k ověření podpory funkcí zahrnutých v projektu a je přidána do .dacpac souboru jako vlastnost. Ve výchozím nastavení se cílová platforma kontroluje u cílové databáze, aby se zajistila kompatibilita. Pokud cílová databáze nepodporuje cílovou platformu, nasazení selže, pokud není zadána možnost přepsání publikování.

<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="0.1.12-preview" />
  <PropertyGroup>
    <Name>AdventureWorks</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider</DSP>
  </PropertyGroup>

Platná nastavení pro cílovou platformu jsou:

  • Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.Sql130DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.Sql140DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.Sql150DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.Sql160DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.SqlAzureV12DatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.SqlDwDatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.SqlServerlessDatabaseSchemaProvider
  • Microsoft.Data.Tools.Schema.Sql.SqlDwUnifiedDatabaseSchemaProvider

Odkazy na databáze

Ověření modelu databáze v době sestavení lze rozšířit o obsah projektu SQL prostřednictvím odkazů na databáze. Odkazy na databáze zadané v .sqlproj souboru mohou odkazovat na jiný projekt SQL nebo .dacpac soubor představující jinou databázi nebo více součástí stejné databáze.

Pro odkazy na databáze, které představují jinou databázi, jsou k dispozici následující atributy:

  • DatabaseSqlCmdVariable: Hodnota je název proměnné, která se používá k odkazování na databázi.
    • Nastavení odkazu: <DatabaseSqlCmdVariable>SomeOtherDatabase</DatabaseSqlCmdVariable>
    • Příklad použití: SELECT * FROM [$(SomeOtherDatabase)].dbo.Table1
  • ServerSqlCmdVariable: Hodnota je název proměnné, která se používá k odkazování na server, kde se databáze nachází. používá se s DatabaseSqlCmdVariable, pokud je databáze na jiném serveru.
    • Nastavení odkazu: <ServerSqlCmdVariable>SomeOtherServer</ServerSqlCmdVariable>
    • Příklad použití: SELECT * FROM [$(SomeOtherServer)].[$(SomeOtherDatabase)].dbo.Table1
  • DatabaseVariableLiteralValue: hodnota je doslovný název databáze, jak se používá v projektu SQL, podobně jako DatabaseSqlCmdVariable, ale odkaz na jinou databázi je doslovná hodnota.
    • Nastavení odkazu: <DatabaseVariableLiteralValue>SomeOtherDatabase</DatabaseVariableLiteralValue>
    • Příklad použití: SELECT * FROM [SomeOtherDatabase].dbo.Table1

V souboru projektu SQL je odkaz na databázi určen jako ArtifactReference položka s atributem Include nastaveným na cestu k .dacpac souboru.

  <ItemGroup>
    <ArtifactReference Include="SampleA.dacpac">
      <DatabaseSqlCmdVariable>DatabaseA</DatabaseSqlCmdVariable>
    </ArtifactReference>
  </ItemGroup>
</Project>

Odkazy na balíčky

Odkazy na balíčky se používají k odkazování na balíčky NuGet, které obsahují .dacpac soubor, a slouží k rozšíření modelu databáze v době sestavení podobně jako odkaz na databázi.

Následující příklad ze souboru projektu SQL odkazuje na Microsoft.SqlServer.Dacpacsbalíček pro master databázi.

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

Kromě atributů dostupných pro odkazy na databáze je možné zadat následující DacpacName atribut, který vybere .dacpac z balíčku, který obsahuje více .dacpac souborů.

  <ItemGroup>
    <PackageReference Include="Microsoft.SqlServer.Dacpacs" Version="160.0.0">
      <DacpacName>msdb</DacpacName>
    </PackageReference>
  </ItemGroup>
</Project>

Proměnné SqlCmd

Proměnné SqlCmd lze definovat v .sqlproj souboru a slouží k nahrazení tokenů v objektech a skriptech SQL během .dacpacnasazování. Následující příklad ze souboru projektu SQL definuje proměnnou s názvem EnvironmentName , která je k dispozici pro použití v objektech a skriptech projektu.

  <ItemGroup>
    <SqlCmdVariable Include="EnvironmentName">
      <DefaultValue>testing</DefaultValue>
      <Value>$(SqlCmdVar__1)</Value>
    </SqlCmdVariable>
  </ItemGroup>
</Project>
IF '$(EnvironmentName)' = 'testing'
BEGIN
    -- do something
END

Při nasazení zkompilovaného projektu SQL (.dacpac) se hodnota proměnné nahradí hodnotou zadanou v příkazu nasazení. Například následující příkaz nasadí AdventureWorks.dacpac a nastaví hodnotu EnvironmentName proměnné na production.

SqlPackage /Action:Publish /SourceFile:AdventureWorks.dacpac /TargetConnectionString:{connection_string_here} /v:EnvironmentName=production

Skripty před nasazením/po nasazení

Skripty před nasazením jsou skripty SQL, které jsou součástí projektu, které se mají spustit během nasazení. Skripty před a po nasazení jsou součástí .dacpac, ale nejsou zkompilovány ani ověřeny pomocí modelu databázového objektu. Před nasazením se spustí skript před nasazením databázového modelu a po použití databázového modelu se spustí skript po nasazení. Následující příklad ze souboru projektu SQL přidá soubor populate-app-settings.sql jako skript po nasazení.

  <ItemGroup>
    <PostDeploy Include="populate-app-settings.sql" />
  </ItemGroup>
</Project>

Další kroky