newhk
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору $Server = hostname ## Имя сервера $login = 'sa' ## Пользователь SQL $pass = '123' ## пароль пользователя SQL $connection = New-Object -com "ADODB.Connection" ## Создаем новый коннектор и выполняем запрос имен баз данных $ConnectionString = "Provider=SQLOLEDB.1; Data Source=$Server; User ID=$login; Password=$pass;" $connection.Open($ConnectionString) $recordSet = $connection.Execute(" DECLARE @repottdb nvarchar(50); DECLARE @repottdbtemp nvarchar(50); SELECT @repottdb = ('ReportServer$' + (SELECT @@SERVICENAME)); SELECT @repottdbtemp = ('ReportServer$' + (SELECT @@SERVICENAME) + 'TempDB'); SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb', (SELECT @repottdb), (SELECT @repottdbtemp));" ) ## В этом цикле предполагается создать массив с именами баз данных, который передаст свои значения в меню While (-not $recordSet.EOF) { $dbname = $recordSet.Fields.Item("Name").Value $recordSet.MoveNext() [array]$dbname += $dbnm write-output $( $dbname ) $i = 1 foreach ($item in $dbname) { "`t$i.`t$($item)" $i++ } [int] $number = Read-Host 'Сделайте выбор и нажмите ENTER' if (($number -gt 0) -and ($number -lt ($i))) # если номер больше 0, и если номер меньше $i { $db = @($item)[$number-1] Write-Host "Выбрана база - $db" } else { "неправильно введён номер" } } $connection.Close() | Всего записей: 400 | Зарегистр. 02-02-2009 | Отправлено: 12:09 21-02-2020 | Исправлено: newhk, 14:09 21-02-2020 |
|