Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Tworzenie nowego projektu SQL w stylu zestawu SDK to szybkie zadanie. Jeśli jednak masz istniejące projekty SQL, możesz je przekształcić w projekty SQL w stylu SDK, aby wykorzystać nowe funkcje.
Po konwersji projektu możesz korzystać z nowych funkcji projektu w stylu SDK, takich jak:
- Obsługa kompilacji wieloplatformowej
- Uproszczony format plików projektów
- Odwołania do pakietów
Aby dokładnie przeprowadzić konwersję, postępuj zgodnie z następującymi krokami:
- Utwórz kopię zapasową oryginalnego pliku projektu.
- Skompiluj plik
.dacpacz oryginalnego projektu w celu porównania. - Zmodyfikuj plik projektu na projekt w stylu SDK.
- Skompiluj plik
.dacpacz zmodyfikowanego projektu w celu porównania. - Sprawdź, czy pliki
.dacpacsą takie same.
SQL Server Data Tools (SSDT) w Visual Studio nie obsługuje projektów w stylu SDK. Po konwersji projektu użyj jednego z następujących narzędzi do jego budowy lub edycji:
- Rozszerzenie SQL Database Projects w Visual Studio Code
- Database DevOps w SQL Server Management Studio (SSMS)
- Wiersz polecenia
- SQL Server Data Tools w stylu zestawu SDK (podgląd) w programie Visual Studio 2022
Note
Może się okazać, że projekt SQL zawiera dostosowania, które wykraczają poza wymagane zmiany związane z tymi czynnościami. Oprócz tego artykułu repozytorium GitHub DacFx może służyć do zrozumienia zmian niezbędnych do uaktualnienia z oryginalnego projektu SQL do projektów SQL w stylu zestawu SDK.
Prerequisites
Krok 1. Tworzenie kopii zapasowej oryginalnego pliku projektu
Przed przekonwertowaniem projektu utwórz kopię zapasową oryginalnego pliku projektu. W razie potrzeby można przywrócić oryginalny projekt.
W Eksploratorze plików utwórz kopię pliku .sqlproj dla projektu, który chcesz przekonwertować, z dopisanym .original do rozszerzenia pliku. Na przykład MyProject.sqlproj staje się MyProject.sqlproj.original.
Krok 2. Kompilowanie pliku .dacpac z oryginalnego projektu w celu porównania
Otwórz projekt w programie Visual Studio. Plik .sqlproj jest nadal w oryginalnym formacie, więc można go otworzyć w oryginalnych narzędziach SQL Server Data Tools.
Skompiluj projekt w programie Visual Studio, klikając prawym przyciskiem myszy węzeł bazy danych w eksploratorze rozwiązań i wybierając pozycję Build.
Aby utworzyć plik .dacpac z oryginalnego projektu, należy użyć oryginalnych narzędzi SQL Server Data Tools (SSDT) w programie Visual Studio. Otwórz plik projektu w programie Visual Studio z zainstalowanymi oryginalnymi narzędziami SQL Server Data Tools.
Skompiluj projekt w programie Visual Studio, klikając prawym przyciskiem myszy węzeł bazy danych w eksploratorze rozwiązań i wybierając pozycję Build.
Otwórz folder projektu w programie Visual Studio Code. W widoku Projekty bazy danych programu Visual Studio Code kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Kompiluj.
Aby utworzyć plik .dacpac z oryginalnego projektu, należy użyć oryginalnych narzędzi SQL Server Data Tools (SSDT) w programie Visual Studio. Otwórz plik projektu w programie Visual Studio z zainstalowanymi oryginalnymi narzędziami SQL Server Data Tools.
Skompiluj projekt w programie Visual Studio, klikając prawym przyciskiem myszy węzeł bazy danych w eksploratorze rozwiązań i wybierając pozycję Build.
Projekty bazy danych SQL można tworzyć z poziomu wiersza polecenia przy użyciu dotnet build polecenia .
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces kompilacji domyślnie tworzy plik .dacpac w folderze bin\Debug projektu. Korzystając z File Explorera, zlokalizuj plik utworzony .dacpac przez proces budowy i skopiuj go do nowego folderu poza katalogiem projektu jako .original_project.dacpac Użyj tego .dacpac pliku do porównania, aby później zweryfikować swoją konwersję.
Krok 3: Zmodyfikuj plik projektu do projektu w stylu zestawu SDK
Modyfikowanie pliku projektu jest procesem ręcznym, najlepiej wykonanym w edytorze tekstów. Otwórz plik .sqlproj w edytorze tekstów i wprowadź następujące zmiany:
Wymagane: Dodaj odwołanie do zestawu SDK
Wewnątrz elementu projektu dodaj element Sdk, aby odwołać się do Microsoft.Build.Sql i najnowszej wersji z https://www.nuget.org/packages/Microsoft.build.sql, gdzie #.#.# znajduje się w poniższym fragmencie kodu.
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0">
<Sdk Name="Microsoft.Build.Sql" Version="#.#.#" />
...
Wymagane: Usuń niepotrzebne importy obiektów docelowych kompilacji
Oryginalne projekty SQL odwołują się do kilku obiektów docelowych i właściwości kompilacji w instrukcjach Import. Z wyjątkiem elementów <Import/>, które zostały jawnie dodane, co jest unikatową i celową zmianą, usuń wiersze rozpoczynające się od <Import ...>.
"Przykłady do usunięcia, jeśli są obecne w Twoim .sqlproj:"
...
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Condition="..." Project="...\Microsoft.Data.Tools.Schema.SqlTasks.targets"/>
<Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
...
Wymagane: Usuń folder Właściwości
Oryginalne projekty SQL mają wpis dla folderu Properties, który reprezentował dostęp do właściwości projektu w Eksploratorze rozwiązań. Usuń ten element z pliku projektu.
Przykład do usunięcia, jeśli jest obecny w .sqlproj:
<ItemGroup>
<Folder Include="Properties" />
</ItemGroup>
Wymagane: usuń elementy kompilacji dołączone domyślnie
Oryginalne projekty SQL zawierają listę wszystkich plików .sql reprezentujących obiekty bazy danych jawnie w pliku projektu jako elementy <Build Include="..." />. W projektach SQL w stylu SDK wszystkie .sql pliki w drzewie folderów projektu (**/*.sql) są domyślnie uwzględniane. Usuń .sql pliki określone w elementach <Build Include="...." /> tych plików, aby uniknąć problemów z wydajnością buildów.
Usuń z pliku projektu takie linie jak poniższe:
<Build Include="SalesLT/Products.sql" />
<Build Include="SalesLT/SalesLT.sql" />
<Build Include="SalesLT/Categories.sql" />
<Build Include="SalesLT/CategoriesProductCount.sql" />
Nie usuwaj:
-
<Build Include="..." />elementy dla.sqlplików, których nie ma w drzewie folderów projektu SQL -
<PreDeploy Include="..." />lub elementów<PostDeploy Include="..." />, ponieważ te węzły określają specyficzne zachowanie dla tych plików - Elementy, które nie są plikami
.sql, na przykład pliki.publish.xmlw elementach<None Include="..." />, pliki.refactorlog.xmlw elementach<RefactorLog Include="..." />lub pliki.xsdw elementach<Build Include="..." />
Opcjonalnie: Usuń odwołania do SSDT
Oryginalne narzędzia SQL Server Data Tools (SSDT) wymagały dodatkowej zawartości w pliku projektu w celu wykrycia instalacji programu Visual Studio. Te wiersze są niepotrzebne w projektach SQL w stylu zestawu SDK i można je usunąć:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<!-- Default to the v11.0 targets path if the targets file for the current VS version is not found -->
<SSDTExists Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets')">True</SSDTExists>
<VisualStudioVersion Condition="'$(SSDTExists)' == ''">11.0</VisualStudioVersion>
</PropertyGroup>
Opcjonalnie: Usuwanie domyślnych ustawień kompilacji
Oryginalne projekty SQL zawierają dwa duże bloki dla ustawień Release i Debug, podczas gdy w projektach SQL w stylu SDK SDK zna domyślne ustawienia tych opcji. Jeśli nie masz dostosowań ustawień kompilacji, rozważ usunięcie tych bloków:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<BuildScriptName>$(MSBuildProjectName).sql</BuildScriptName>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
Lista właściwości projektu odniesienia zawiera dostępne właściwości i ich domyślne wartości.
Krok 4. Pliki rozwiązania
Plik projektu może być przywołyny w pliku rozwiązania (.sln). Jeśli masz plik rozwiązania, zaktualizuj go, aby odwoływał się do nowego pliku projektu w stylu SDK. Jeśli nie masz pliku rozwiązania, możesz pominąć tę sekcję i przejść do kroku 5.
Opcja 1. Tworzenie nowego pliku rozwiązania
Jeśli plik rozwiązania zawiera tylko projekt SQL, łatwiej jest usunąć plik rozwiązania i utworzyć nowy plik rozwiązania w projekcie w stylu SDK.
dotnet new sln --name MySolution
dotnet sln MySolution.sln add MyDatabaseProject\MyDatabaseProject.sqlproj
Opcja 2. Edytowanie pliku rozwiązania
Jeśli plik rozwiązania zawiera wiele projektów, zaktualizuj plik rozwiązania, aby odwoływał się do nowego pliku projektu w stylu SDK. Plik rozwiązania można edytować w edytorze tekstów i zmienić odwołanie do projektu w nowym pliku projektu w stylu zestawu SDK. Odwołanie do projektu w pliku rozwiązania powinno wyglądać następująco:
Project("{PROJECT_TYPE_GUID}") = "MyDatabaseProject", "MyDatabaseProject\MyDatabaseProject.sqlproj", "{PROJECT_GUID}"
EndProject
Wartość PROJECT_TYPE_GUID dla projektu Microsoft.Build.Sql to 42EA0DBD-9CF1-443E-919E-BE9C484E4577. Jest to PROJECT_GUID unikalny identyfikator projektu znajdujący się w elemencie pliku <ProjectGuid> projektu. Jeśli masz plik rozwiązania przy projekcie, nie musisz zmieniać PROJECT_GUID wartości. Zmień wartość PROJECT_TYPE_GUID na identyfikator GUID typu projektu Microsoft.Build.Sql.
Krok 5. Kompilowanie .dacpac pliku ze zmodyfikowanego projektu w celu porównania
Projekt SQL nie jest już zgodny z programem Visual Studio 2022. Aby zbudować lub edytować projekt, użyj jednej z następujących opcji:
- Wiersz polecenia
- Rozszerzenie SQL Database Projects w Visual Studio Code
- SQL Server Data Tools w stylu zestawu SDK (podgląd) w programie Visual Studio 2022
- SQL Server Management Studio (SSMS) z obciążeniem DevOps bazy danych (wersja zapoznawcza)
Plik projektu jest teraz w formacie w stylu zestawu SDK, ale aby go otworzyć w programie Visual Studio 2022, musisz mieć zainstalowane narzędzia SQL Server Data Tools, w stylu zestawu SDK (wersja zapoznawcza). Otwórz projekt w programie Visual Studio 2022 z zainstalowanymi narzędziami SQL Server Data Tools , stylu SDK (wersja zapoznawcza).
Otwórz folder projektu w programie Visual Studio Code. W widoku Projekty bazy danych programu Visual Studio Code kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Kompiluj.
Otwórz plik projektu w programie SQL Server Management Studio (SSMS) z zainstalowanym obciążeniem DevOps bazy danych (wersja zapoznawcza). W Eksploratorze obiektów kliknij prawym przyciskiem myszy projekt bazy danych i wybierz polecenie Kompiluj.
Projekty bazy danych SQL można tworzyć z poziomu wiersza polecenia przy użyciu dotnet build polecenia .
dotnet build
# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj
Proces kompilacji domyślnie tworzy plik .dacpac w folderze bin\Debug projektu. Korzystając z File Explorera, zlokalizuj plik utworzony .dacpac przez proces budowy i skopiuj go do nowego folderu poza katalogiem projektu. Użyj tego .dacpac pliku do porównania, aby później zweryfikować swoją konwersję.
Krok 6: Sprawdź, czy pliki .dacpac są takie same
Aby sprawdzić, czy konwersja zakończyła się pomyślnie, porównaj pliki .dacpac utworzone z oryginalnych i zmodyfikowanych projektów. Wykorzystaj możliwości porównywania schematów w projektach SQL, aby zwizualizować różnice w modelach baz danych między dwoma .dacpac plikami. Alternatywnie, użyj narzędzia poleceń DacpacVerify, aby porównać oba .dacpac pliki, w tym ich skrypty przed- i po wdrożeniu oraz ustawienia projektu.
Możesz zainstalować DacpacVerify jako narzędzie dotnet. Aby zainstalować narzędzie, uruchom następujące polecenie:
dotnet tool install --global Microsoft.DacpacVerify --prerelease
Składnia elementu DacpacVerify polega na określeniu ścieżki do dwóch plików .dacpac jako dacpacverify <source DACPAC path> <target DACPAC path>. Aby porównać dwa pliki .dacpac, uruchom następujące polecenie:
DacpacVerify original_project.dacpac modified_project.dacpac
Możesz użyć narzędzia do porównywania schematów, aby porównać obiekty w plikach .dacpac .
Uruchom program Visual Studio bez załadowanego projektu. Przejdź do Narzędzia>SQL Server>Nowe Porównanie Schematów. Wybierz oryginalny plik .dacpac jako źródło i zmodyfikowany plik .dacpac jako docelowy. Aby uzyskać więcej informacji na temat używania funkcji Schema Compare w programie Visual Studio, zobacz użycie funkcji Schema Compare do porównania różnych definicji baz danych.
Porównanie schematów graficznych nie jest jeszcze dostępne w wersji zapoznawczej projektów SQL w stylu zestawu SDK w programie Visual Studio. Porównanie schematów przy użyciu programu Visual Studio Code.
W programie Visual Studio Code zainstaluj rozszerzenie PORÓWNANIE schematów programu SQL Server , jeśli nie zostało jeszcze zainstalowane. Uruchom nowe porównanie schematów z palety poleceń, otwierając paletę poleceń przy użyciu Ctrl/Cmd+Shift+P i wpisując Schema Compare.
Wybierz oryginalny plik .dacpac jako źródło i zmodyfikowany plik .dacpac jako docelowy.
Porównanie schematów graficznych nie jest dostępne w programie SQL Server Management Studio. Użyj Visual Studio Code lub Visual Studio do porównywania schematów.
Porównanie schematów graficznych jest dostępne w programach Visual Studio i Visual Studio Code.
Podczas porównywania schematów nie powinny być wyświetlane żadne wyniki. Brak różnic wskazuje, że oryginalne i zmodyfikowane projekty są równoważne, tworząc ten sam model bazy danych w pliku .dacpac.
Note
Porównanie plików .dacpac za pomocą porównania schematu nie weryfikuje skryptów przed/po wdrożeniu, dziennika refaktoryzacji ani innych ustawień projektu. Weryfikuje tylko model bazy danych. Użycie narzędzia wiersza polecenia DacpacVerify jest zalecanym sposobem sprawdzenia, czy dwa pliki .dacpac są równoważne.