Delen via


Zelfstudie: beginnen met een bestaande database

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

SQL-projecten bevatten declaratieve bestanden (CREATE-instructie) voor alle objecten in een database, zoals tabellen, weergaven en opgeslagen procedures. Deze bestanden kunnen worden gebruikt om nieuwe databases te maken, bestaande databases bij te werken of zelfs om de database bij te houden in broncodebeheer. Vaak beginnen we met een SQL-project wanneer we een bestaande database hebben en objecten willen maken in het SQL-project die met minimale inspanning overeenkomen met de database.

Sommige hulpprogramma's voor SQL-projecten hebben één stap om een nieuw SQL-project te maken op basis van een bestaande database. Voor andere hulpprogramma's zijn enkele stappen nodig om een nieuw SQL-project te maken en vervolgens objecten uit een bestaande database te importeren. Met uitzondering van de instructies voor Visual Studio (SQL Server Data Tools) richt de handleiding zich op SQL-projecten in DE SDK-stijl.

Met optie 1 in deze zelfstudie gaat u het volgende doen:

stap 1: een nieuw SQL-project maken op basis van een bestaande database stap 2: het SQL-project bouwen

Met optie 2 in deze handleiding zult u het volgende doen:

  • stap 1: een nieuw leeg SQL-project maken
  • stap 2: objecten uit een bestaande database importeren
  • stap 3: het SQL-project bouwen

Voorwaarden

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Notitie

Voor het voltooien van de zelfstudie hebt u toegang nodig tot een Azure SQL- of SQL Server-exemplaar. U kunt lokaal gratis ontwikkelen met SQL Server Developer Edition in Windows of in containers.

Optie 1: Een nieuw SQL-project maken op basis van een bestaande database

Stap 1: Een nieuw SQL-project maken op basis van een bestaande database

Klik in de SQL Server-objectverkenner in Visual Studio met de rechtermuisknop op de database waaruit u een project wilt maken en selecteer Nieuw project maken....

schermopname van het dialoogvenster Database importeren in Visual Studio.

Geef in het dialoogvenster Nieuw project maken een projectnaam op die niet overeenkomt met een databasenaam. Controleer en wijzig de projectlocatie indien nodig. Met de standaardinstellingen voor import worden de objecten eerst per schema en vervolgens per objecttype in mappen geïmporteerd. U kunt de importinstellingen wijzigen om de mapstructuur te wijzigen of machtigingen op te nemen in de objecten die worden geïmporteerd. Start het importeren.

Terwijl het importeren wordt voortgezet, wordt de voortgang weergegeven als berichten in het dialoogvenster Database importeren. Wanneer het importeren is voltooid, zijn de geïmporteerde objecten zichtbaar in de Solution Explorer- en worden de logboeken opgeslagen in een bestand in de projectmap onder Import Schema Logs. Selecteer voltooien.

Optie 1 is niet beschikbaar voor de command line. Gebruik in plaats daarvan optie 2.

Selecteer in de weergave databaseobjectverkenner in VS Code of Azure Data Studio een database waaruit u een project wilt maken. Klik met de rechtermuisknop op de database en selecteer Project maken op basis van database.

Schermopname van het dialoogvenster Project maken op basis van een database in Azure Data Studio.

In Azure Data Studio moet voor het dialoogvenster Project maken op basis van de database de projectnaam en -locatie zijn geselecteerd. Met de standaardinstellingen voor importeren worden de objecten eerst per schema en vervolgens per objecttype in mappen geïmporteerd. U kunt een andere mapstructuur selecteren of machtigingen opnemen in de objecten die worden geïmporteerd voordat u Makenselecteert.

In VS Code vragen de opdrachtprompts om een projectnaam en locatie. De standaardimportinstellingen importeren de objecten in mappen, eerst per schema en dan per objecttype. U kunt een andere mapstructuur selecteren of machtigingen opnemen in de objecten die worden geïmporteerd voordat het importeren begint.

Open de databaseprojecten weergave om het nieuwe project en de geïmporteerde objectdefinities te bekijken.

Optie 1 is niet beschikbaar voor de commandoregel. Gebruik in plaats daarvan optie 2.

Stap 2: het SQL-project bouwen

Het buildproces valideert de relaties tussen objecten en de syntaxis voor het doelplatform dat is opgegeven in het projectbestand. De artefactuitvoer van het buildproces is een .dacpac-bestand, dat kan worden gebruikt om het project te implementeren in een doeldatabase en het gecompileerde model van het databaseschema bevat.

Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Build.

Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin\Debug\projectname.dacpac).

Optie 1 is niet beschikbaar voor de opdrachtregel. Gebruik in plaats daarvan optie 2.

Klik in de databaseprojecten weergave van VS Code of Azure Data Studio met de rechtermuisknop op het projectknooppunt en selecteer Build.

Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin/Debug/projectname.dacpac).

Optie 1 is niet beschikbaar voor de commandoregel. Gebruik in plaats daarvan optie 2.

Optie 2: Een nieuw leeg SQL-project maken en objecten importeren uit een bestaande database

U kunt ook de stappen voor het maken en importeren van objecten afzonderlijk uitvoeren.

Stap 1: Een nieuw leeg SQL-project maken

We beginnen ons project door een nieuw SQL-databaseproject te maken voordat we onze objecten erin importeren.

Selecteer Bestand, Nieuween Project.

Gebruik in het dialoogvenster Nieuw project de term SQL Server- in het zoekvak. Het bovenste resultaat moet worden SQL Server Database Project.

schermopname van het dialoogvenster Nieuw project.

Selecteer Volgende om door te gaan naar de volgende stap. Geef een projectnaam op die niet overeenkomt met een databasenaam. Controleer en wijzig de projectlocatie indien nodig.

Selecteer maken om het project te maken. Het lege project wordt geopend en is zichtbaar in de Solution Explorer om te bewerken.

Selecteer Bestand, Nieuween Project.

Gebruik in het dialoogvenster Nieuw project de term SQL Server- in het zoekvak. Het bovenste resultaat moet SQL Server Databaseproject in SDK-stijl (voorbeeldweergave)zijn.

schermopname van het dialoogvenster Nieuw project.

Selecteer Volgende om door te gaan naar de volgende stap. Geef een projectnaam op die niet overeenkomt met een databasenaam. Controleer en wijzig de projectlocatie indien nodig.

Selecteer Creëer om het project te maken. Het lege project wordt geopend en is zichtbaar in de Solution Explorer om te bewerken.

Selecteer in de databaseprojecten weergave van VS Code of Azure Data Studio de knop Nieuw project.

Schermopname van nieuwe viewlet.

De eerste prompt bepaalt welke projectsjabloon moet worden gebruikt, voornamelijk op basis van of het doelplatform SQL Server of Azure SQL is. Als u wordt gevraagd om een specifieke versie van SQL te selecteren, kiest u de versie die overeenkomt met de doeldatabase, maar als de doeldatabaseversie onbekend is, kiest u de meest recente versie, omdat de waarde later kan worden gewijzigd.

Voer een projectnaam in de tekstinvoer in die wordt weergegeven. Deze naam hoeft niet overeen te komen met een databasenaam.

Selecteer in het dialoogvenster "Een map selecteren", dat wordt weergegeven, een map waarin de map van het project, het .sqlproj-bestand en andere inhoud zich moeten bevinden.

Wanneer u wordt gevraagd of u een SDK-project wilt maken, selecteert u Ja.

Zodra het project is voltooid, wordt het lege project geopend en zichtbaar in de databaseprojecten weergave voor bewerking.

Als de .NET-sjablonen voor Microsoft.Build.Sql-projecten zijn geïnstalleerd, kunt u vanaf de opdrachtregel een nieuw SQL-databaseproject maken. De -n-optie geeft de naam van het project op en de -tp optie geeft het projectdoelplatform op.

Gebruik de optie -h om alle beschikbare opties weer te geven.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Stap 2: Objecten importeren uit een bestaande database

Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Importeren -> Database.... Als deze optie is uitgeschakeld, bevat het databaseproject mogelijk objecten die erin zijn gemaakt. U kunt de objecten verwijderen of een nieuw project maken.

Selecteer in het dialoogvenster Database importeren de verbinding met de database waaruit u objecten wilt importeren. Als u verbinding hebt gemaakt met de database in SQL Server-objectverkenner, bevindt deze zich in de geschiedenis lijst.

schermopname van het dialoogvenster Database importeren in Visual Studio.

De standaard importinstellingen importeren de objecten eerst in mappen per schema en daarna per objecttype. U kunt de importinstellingen wijzigen om de mapstructuur te wijzigen of machtigingen op te nemen in de objecten die worden geïmporteerd. het importeren starten.

Terwijl het importeren wordt voortgezet, wordt de voortgang weergegeven als berichten in het dialoogvenster Database importeren. Wanneer het importeren is voltooid, zijn de geïmporteerde objecten zichtbaar in de Solution Explorer- en worden de logboeken opgeslagen in een bestand in de projectmap onder Import Schema Logs. Selecteer voltooien om terug te keren naar het project.

We gebruiken de SQLPackage CLI om objecten uit een bestaande database te importeren in het nieuwe SQL-databaseproject dat we in stap 1 in Visual Studio hebben gemaakt. Met de volgende SqlPackage-opdracht wordt het schema van een database geïmporteerd in een map MyDatabaseProject geordend op geneste schema- en objecttypemappen.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Wanneer deze mappen worden geplaatst in een SQL-databaseprojectmap in SDK-stijl, worden ze automatisch opgenomen in het project zonder dat u ze hoeft te importeren of het SQL-projectbestand te wijzigen.

Notitie

De extensie SQL Database Projects in VS Code biedt geen ondersteuning voor het importeren van objecten uit een database in een project. Gebruik de extensie SQL Database Projects in Azure Data Studio om objecten uit een database te importeren of volg optie 1 om een nieuw project te maken op basis van een bestaande database in VS Code.

In de extensie SQL Database Projects in Azure Data Studio, open de weergave Database Projects. Klik met de rechtermuisknop op het projectknooppunt en selecteer Project bijwerken in database.

Schermopname van het Dialoogvenster Database Bijwerken in Azure Data Studio.

Selecteer in het dialoogvenster Database bijwerken de verbinding met de database waaruit u objecten wilt importeren. Als u verbinding hebt gemaakt met de database in de weergave Verbindingen, bevindt deze zich in de geschiedenis lijst.

Selecteer Wijzigingen in schema weergeven vergelijken en een subset van objecten kiezen die u wilt importeren of Alle wijzigingen toepassen om alle objecten te importeren.

De SQLPackage CLI kan worden gebruikt om het schema van een bestaande database te extraheren naar een .dacpac bestand of afzonderlijke .sql-bestanden. Met de volgende SqlPackage-opdracht wordt het schema van een database geëxtraheerd naar een .sql bestanden die zijn geordend op geneste schema- en objecttypemappen.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Wanneer deze mappen worden geplaatst in een SQL-databaseprojectmap in SDK-stijl, worden ze automatisch opgenomen in het project zonder dat u ze hoeft te importeren of het SQL-projectbestand te wijzigen.

Stap 3: het SQL-project bouwen

Het buildproces valideert de relaties tussen objecten en de syntaxis voor het doelplatform dat is opgegeven in het projectbestand. De artefactuitvoer van het buildproces is een .dacpac-bestand, dat kan worden gebruikt om het project te implementeren in een doeldatabase en het gecompileerde model van het databaseschema bevat.

Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Build.

Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin\Debug\projectname.dacpac).

Klik in Solution Explorermet de rechtermuisknop op het projectknooppunt en selecteer Build.

Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin\Debug\projectname.dacpac).

Klik in de databaseprojecten weergave van VS Code of Azure Data Studio met de rechtermuisknop op het projectknooppunt en selecteer Build.

Het uitvoervenster wordt automatisch geopend om het buildproces weer te geven. Als er fouten of waarschuwingen zijn, worden deze weergegeven in het uitvoervenster. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin/Debug/projectname.dacpac).

SQL-databaseprojecten kunnen worden gebouwd vanaf de opdrachtregel met behulp van de opdracht dotnet build.

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

De build-uitvoer bevat eventuele fouten of waarschuwingen en de specifieke bestanden en regelnummers waar ze optreden. Bij een geslaagde build wordt het buildartefact (.dacpac-bestand) gemaakt en wordt de locatie ervan opgenomen in de build-uitvoer (standaard is bin/Debug/projectname.dacpac).