Перечисление списка баз данных в Azure SQL Server - PullRequest
0 голосов
/ 28 сентября 2018

Мы помечаем базы данных с расширенными свойствами, чтобы определить базы данных, совместимые с нашим программным обеспечением.Мы предоставляем пользователю список совместимых баз данных для подключения.

На сегодняшний день мы использовали sp_databases в локальном экземпляре SQL Express, чтобы сделать это.Мы использовали эту хранимую процедуру для запросов к sys.databases, потому что известно, что наши пользователи по какой-то причине удаляют файлы MDF / LDF.По нашему опыту, sp_databases не будут возвращать базы данных, если их базовые файлы MDF / LDF были удалены.

Как я могу сказать, sp_databases не поддерживаются в Azure SQL Server.Я попытался изменить код на запрос к sys.databases, так как нам не нужно беспокоиться о пользователях, удаляющих файлы MDF / LDF в среде Azure, однако всегда возвращает пустой результат при запуске из приложения .Net.

Каков правильный подход для запроса набора баз данных на SQL Server Azure, чтобы мы могли затем отфильтровать базы данных на основе расширенных значений свойств?Есть ли дополнительные вещи, которые нужно предоставить пользователю, выполняющему запрос?

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете использовать объекты управления SQL Server (SMO).Ниже приведен пример использования SMO из PowerShell.

Function Get-Databases {
    Param(
    [string]$location
    , [string]$server
    , [string]$smolibrary
    , [string]$daclibrary
    , [string]$username
    , [string]$password
    )
    Process
    {
        $dt = Get-Date -uFormat "%Y%m%d"

        Add-Type -Path $smolibrary
        $scon = "Data Source=$server.database.windows.net;Initial Catalog=master;User ID=$username;Password=$password;"
        $servercon = New-Object Microsoft.SqlServer.Management.Common.ServerConnection
        $servercon.ConnectionString = $scon
        $srv = New-Object Microsoft.SqlServer.Management.SMO.Server($servercon)

        foreach ($db in $srv.Databases | Where-Object {$_.Name -ne "master"})
        {
            $database = $db.Name
            ###  Print or save $database
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...