Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Проекты SQL проверяют ссылки на объекты базы данных во время процесса сборки проекта. По умолчанию проекты SQL не включают системные объекты в модель базы данных, что может привести к ошибкам проверки, если проект содержит ссылки на системные объекты. Чтобы устранить эти ошибки проверки, необходимо включить ссылку master.dacpac на базу данных для целевой платформы проекта.
Ссылка master.dacpac на базу данных может быть добавлена в качестве ссылки на пакет в проектах SQL в стиле пакета Microsoft.Build.Sql или в качестве ссылки на артефакты как в стиле SDK, так и в исходных проектах SQL.
Добавление ссылки на пакет
Доступные пакеты системной базы данных:
-
Системная база данных SQL Server
master -
Системная база данных SQL Server
msdb -
Системная база данных Azure SQL Database
master - База данных SQL в системных объектах Fabric
-
Системная база данных Azure Synapse Analytics
master -
Системная база данных бессерверных пулов
masterAzure Synapse Analytics
Самый прямой способ добавления ссылки на пакет в проект SQL — использовать интерфейс командной строки .NET (CLI). В следующем примере в проект SQL добавляется ссылка на пакетную библиотеку в системную базу данных Azure SQL:
dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master
Эта команда добавляет следующую запись .sqlproj в файл (версия пакета будет отражать последнюю версию, доступную во время выполнения команды):
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
</ItemGroup>
</Project>
Добавление ссылки на артефакт
Интерфейсы проекта VS Code и Visual Studio SQL предоставляют метод добавления ссылки на артефакт в master.dacpac файл для целевой платформы проекта.
Изменения в файле .sqlproj будут выглядеть примерно как в следующем примере, добавляющем ссылку на артефакт в системную базу данных SQL Azure в Visual Studio.
<ItemGroup>
<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac">
<HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
</ArtifactReference>
</ItemGroup>
Файлы master.dacpac ссылаются на место установки приложений, что может быть ненадежным для некоторых систем CI/CD. Файл master.dacpac можно скопировать в локальное расположение в вашем решении и обновить атрибуты Include и HintPath, чтобы указать на это расположение, если ваша система сборки не включает файлы системной базы данных.
База данных SQL в Fabric
База данных SQL в системных объектах Fabric включается в Microsoft.SqlServer.Dacpacs.DbFabric пакет, но для правильной настройки ссылки на базу данных SQL в среде Fabric могут потребоваться дополнительные действия.
Проект SQL, созданный с помощью интегрированной системы управления версиями в Fabric, включает ссылку на пакет и свойство DatabaseVariableLiteralValue, установленное в master. Это свойство необходимо, так как база данных SQL в Fabric не предоставляет доступ к master базе данных, но на те же системные объекты можно ссылаться в пользовательской базе данных.
При создании проекта SQL в Visual Studio или VS Code необходимо обновить DatabaseVariableLiteralValue свойство, чтобы master оно соответствовало имени базы данных, используемому в базе данных SQL в среде Fabric.
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
<Version>170.0.0</Version>
</PackageReference>
</ItemGroup>