Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Verktyg för SQL-projekt finns i flera utvecklingsmiljöer och kommandoradsgränssnitt. De primära verktygen för SQL-projekt är kommandoradsverktyget SqlPackage, SQL Server Data Tools (SSDT) i Visual Studio och tillägget SQL Database Projects för Visual Studio Code.
Verktyg som ingår i den här artikeln:
Grafiska verktyg
Dessa verktyg tillhandahåller ett grafiskt gränssnitt för SQL-projekt, en Transact-SQL (T-SQL) redigerare och en bygg- och publiceringsprocess.
SQL Database Projects-tillägget är ett tillägg för Visual Studio Code. Det här tillägget innehåller ett grafiskt gränssnitt för SQL-projekt, en T-SQL-redigerare och en bygg- och publiceringsprocess.
Database DevOps i SQL Server Management Studio (SSMS) tillhandahåller ett grafiskt gränssnitt för SQL-projekt, en T-SQL-redigerare och en bygg- och publiceringsprocess.
SQL Server Data Tools (SSDT) är en Visual Studio komponent som tillhandahåller ett grafiskt gränssnitt för SQL-projekt. SSDT tillhandahåller en visuell designer för tabeller, en T-SQL-redigerare och en bygg- och publiceringsprocess.
Jämförelse av funktionsuppsättning
| Egenskap | Visual Studio Code | SSMS | SSDT (VS2022-2026) | SDK-stil SSDT (förhandsversion) (VS2022) |
|---|---|---|---|---|
| Skapa nytt tomt projekt | Yes | Yes | Yes | Yes |
| Skapa ett nytt projekt från en befintlig databas | Yes | Yes | Yes | Yes |
| Öppna befintliga Microsoft. Build.Sql-projekt | Yes | Yes | Nej | Yes |
| Öppna SSDT-projekt i originalstil | Yes | Nej | Yes | Nej |
| Lösningshantering och -åtgärder | Nej | Yes | Yes | Yes |
| Kör projektbygg | Yes | Yes | Yes | Yes |
| Publicera projektet till en befintlig server | Yes | Yes | Yes | Yes |
| Publicera projektet till en lokal utvecklingsinstans | Ja1 | Ja2 | Ja3 | Ja3 |
| Publicera alternativ/egenskaper | Yes | Yes | Yes | Yes |
| Målplattformen kan uppdateras | Yes | Yes | Yes | Yes |
| SQLCMD-variabler | Yes | Yes | Yes | Yes |
| Projektberoenden | Yes | Yes | Yes | Yes |
| DACPAC-referenser | Yes | Yes | Yes | Yes |
| Paketreferenser | Yes | Yes | Nej | Nej |
| Skapa publiceringsprofil | Yes | Nej | Yes | Yes |
| SQL-filer kan läggas till genom att placeras i projektmappen | Yes | Yes | Nej | Yes |
| SQL-filer kan undantas från bygget | Yes | Yes | Yes | Nej |
| Skript före distribution och efter distribution | Yes | Yes | Yes | Yes |
| Nya objektmallar | Ja4 | Yes | Yes | Ja4 |
| Project filer kan ordnas i mappar | Yes | Yes | Yes | Yes |
| Schemajämförelseprojekt med databas | Yes | Nej | Yes | Yes |
| Schemajämförelsedatabas till projekt | Yes | Nej | Yes | Nej |
| Grafisk tabelldesigner | Nej | Nej | Yes | Yes |
| Kodanalys – aktivera/inaktivera regler GUI | Yes | Yes | Yes | Nej |
| Project egenskaper – skapa utdatainställningar | Nej | Nej | Yes | Yes |
| Projekt Egenskaper – GUI för databasinställningar | Nej | Nej | Yes | Nej |
| Kör projekt code-analys | Yes | Yes | Yes | Nej |
| Objektbyte och refaktorisering | Nej | Nej | Yes | Nej |
| Intellisense tillhandahålls i databasfiler från projektmodellen | Nej | Nej | Yes | Nej |
1 Lokal utvecklingsinstans är en SQL Server container.
2 Alla förinstallerade Microsoft SQL-databas kan användas som en lokal utvecklingsinstans.
3 Lokal utvecklingsinstans är en SQL Server LocalDB-instans.
4 Begränsad delmängd av tillgängliga mallar.
Kommandoradsverktyg
SqlPackage är det primära kommandoradsverktyget för DacFx-biblioteket, vilket möjliggör automatisering av databasutvecklingsuppgifter som att distribuera en .dacpac till en databas eller extrahera objekten i en databas till ett SQL-projekt eller .dacpac.
Anpassade konsolprogram kan skapas med hjälp av DacFx-.NET-biblioteket för att automatisera databasutvecklingsuppgifter. Microsoft. SqlServer.Dac innehåller klasser för att skapa, distribuera och extrahera databasobjekt och är grundläggande för resten av DacFx-biblioteket.
CI/CD-pipelinesystem kan skapas med kommandoradskörning eller med uppgifter som är specifika för utrullningen av .dacpac SQL-projekt.
GitHub sql-action och SqlAzureDacpacDeployment i Azure DevOps är exempel på uppgifter som använder SqlPackage under ett hanteringslager för att underlätta distributionen av databasändringar.
Konverteringsverktyg
Processen med att konvertera ett befintligt SQL-projekt till ett SDK-projekt görs genom att filen redigeras .sqlproj manuellt för att inkludera det nya SDK-formatet. Innan du påbörjar processen rekommenderar vi att du både säkerhetskopierar projektfilen och arkiverar en .dacpac av projektet. Genom att jämföra ett "före" och "efter" som skapats .dacpac från projektet kan du se till att konverteringsprocessen har slutförts korrekt.
Projekt- och lösningshantering
Flera SQL-projekt (och andra projekt) kan grupperas logiskt i en lösningsfil. Lösningsfilen är en container för ett eller flera projekt och används för att hantera projekten som en grupp, inklusive byggåtgärden. Stora lösningar kan delas upp i mindre lösningar för att förbättra prestanda och hanterbarhet, eller dynamiskt genereras för lämplig uppgift. Filgeneratorn slngen solution är tillgänglig för Microsoft. Build.Sql-projekt och kan användas för att skapa en lösningsfil för en uppsättning projekt programmatiskt och på begäran.
Roadmap
En kvartalsöversikt för SQL-projektrelaterade funktioner finns på https://aka.ms/sqlprojects-roadmap. Kundfeedback påverkar i hög grad färdplanen, som omfattar både modernisering av funktionerna i Microsoft. Build.Sql-projekt och förbättringar av verktygsytorna som är associerade med SQL-projekt.
Verktyg från tredje part
Det finns verktyg från tredje part som tillhandahåller funktioner som rör SQL-projekt och databasdistribution. Vissa verktyg är open-source, till exempel dbatools.
Utvecklare har delat sina projekt med utökningspunkter runt SQL-projekt, inklusive regler för kodanalys och anpassning av distributionsplaner. Några av dessa projekt är:
- https://github.com/tcartwright/SqlServer.Rules
- https://github.com/davebally/TSQL-Smells
- https://github.com/ErikEJ/SqlServer.Rules
- https://github.com/GoEddie/DeploymentContributorFilterer