#sql #sql-server #azure #powershell
#sql #sql-сервер #azure #powershell
Вопрос:
У меня есть база данных SQL Azure с представлением SQL, которое я хочу просмотреть в PowerShell.
Я искал и работал с :
Read-SqlViewData -ServerInstance "xxx.database.windows.net" -DatabaseName "dbname" -ViewName "viewNAme" -TopN 2 -Credential $cred -SchemaName "dbo"
У меня есть $cred
by get-credential
.
Мне интересно, предназначено ли это сейчас для Azure SQL и для установки SQL на сервере, поскольку я получаю сообщение об ошибке:
Исключение ItemNotFoundException на экземпляре сервера.
Любая помощь была бы отличной, поскольку я впервые получаю данные sql Azure с помощью PowerShell.
Ответ №1:
Честно говоря, я никогда не использовал эту команду, но я смог использовать другую команду Powershell из того же модуля, например «Invoke-Sqlcmd», для Azure SQL DB, поэтому команда должна быть совместима с Azure SQL DB.
Я несколько раз использовал Invoke-Sqlcmd, используя dbname, servername, имя пользователя, пароль и запрос, может быть, вы можете попробовать, например:
$params = @{
'Database' = ${DbName}
'ServerInstance' = $ServerInstance.FullyQualifiedDomainName
'Username' = ${UserDB}
'Password' = ${dbPassword}
'Query' = ${SqlQuery}
}
$val = Invoke-Sqlcmd @params
Другой вариант — использовать SqlConnection like (в данном случае auth с токеном):
$conn = New-Object System.Data.SqlClient.SQLConnection
$conn.ConnectionString = "Data Source=$SQLSERVERNAME.database.windows.net;Initial Catalog=$DBNAMEe;Connect Timeout=30"
$conn.AccessToken = $tokenAuth
$conn.Open()
$conn
$query = "YOUR QUERY"
$command = New-Object -TypeName System.Data.SqlClient.SqlCommand($query, $conn)
$Result = $command.ExecuteScalar()
Комментарии:
1. это удивительно, хотя мне было дано представление об используемом SQL, а не о запросе SQL TSQL…
2. если вы посмотрите на команду, которую я использовал, она запрашивает serverinstance, но я, похоже, не могу понять, что это за экземпляр в Azure SQL.
3. У меня это работает с вашей помощью … приветствую этого человека!