Добрый день
В этой записе я хочу представить модуль для PowerShell для работы с базами данных, такие как SQL
Все что требуется для работы этого модуля это установлены на компьютер framework не ниже 3.5 и просто подгрузив его в консоль PowerShell или в отдельный скрипт мы получим возможность работы с SQL базами.
Скопируйте и сохраните код в текстовый файл, например SQLDataTools, с расширением psm1
Код модуля:
Что бы подгрузить модуль используйте командлет
Import-Module (" [путь к файлу] \SQLDataTools.psm1")
А так же переменные и готовые функции для выполнения различных запросов
$SQl_Server = 'prm-test-sql'
$SQLDateBase = 'audit_adm'
#функция выполнения запроса на SQL сервере
function SET_Query {Invoke-DatabaseQuery -verbose -connectionString ('Server=' + $SQl_Server + ';Database=' + $SQLDateBase + ';Trusted_Connection=True;') -isSQLServer -query $args[0]}
#Функция получения данных от SQL сервера
function GET_Query {Get-DatabaseData -connectionString ('Server=' + $SQl_Server + ';Database=' + $SQLDateBase + ';Trusted_Connection=True;') -isSQLServer -Query $Args[0]}
После ввода функций с помощью их можно легко получать данные или выполнять различные запросы, например:
GET_Query 'select TOP 10 * From Audit_adm.dbo.Audit_fs'
SET_Query 'delete From Audit_adm.dbo.Audit_fs where DateEvent <= cast (dateadd (day, -180, GETDATE()) as DATE)'
В этой записе я хочу представить модуль для PowerShell для работы с базами данных, такие как SQL
Все что требуется для работы этого модуля это установлены на компьютер framework не ниже 3.5 и просто подгрузив его в консоль PowerShell или в отдельный скрипт мы получим возможность работы с SQL базами.
Скопируйте и сохраните код в текстовый файл, например SQLDataTools, с расширением psm1
Код модуля:
function Get-DatabaseData {
[CmdletBinding()]
param (
[string]$connectionString,
[string]$query,
[switch]$isSQLServer
)
if ($isSQLServer) {
Write-Verbose 'in SQL Server mode'
$connection = New-Object System.Data.SqlClient.SqlConnection
} else {
Write-Verbose 'in OleDB mode'
$connection = New-Object System.Data.OleDb.OleDbConnection
}
$connection.ConnectionString = $connectionString
$command = $connection.CreateCommand()
$command.CommandText = $query
if ($isSQLServer) {
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter $command
} else {
$adapter = New-Object System.Data.OleDb.OleDbDataAdapter $command
}
$dataset = New-Object System.Data.DataSet
$adapter.Fill($dataset)
$dataset.Tables[0]
}
function Invoke-DatabaseQuery {
[CmdletBinding()]
param (
[string]$connectionString,
[string]$query,
[switch]$isSQLServer
)
if ($isSQLServer) {
Write-Verbose 'in SQL Server mode'
$connection = New-Object System.Data.SqlClient.SqlConnection
} else {
Write-Verbose 'in OleDB mode'
$connection = New-Object System.Data.OleDb.OleDbConnection
}
$connection.ConnectionString = $connectionString
$command = $connection.CreateCommand()
$command.CommandText = $query
$connection.Open()
$command.ExecuteNonQuery()
$connection.close()
}
Что бы подгрузить модуль используйте командлет
Import-Module (" [путь к файлу] \SQLDataTools.psm1")
А так же переменные и готовые функции для выполнения различных запросов
$SQl_Server = 'prm-test-sql'
$SQLDateBase = 'audit_adm'
#функция выполнения запроса на SQL сервере
function SET_Query {Invoke-DatabaseQuery -verbose -connectionString ('Server=' + $SQl_Server + ';Database=' + $SQLDateBase + ';Trusted_Connection=True;') -isSQLServer -query $args[0]}
#Функция получения данных от SQL сервера
function GET_Query {Get-DatabaseData -connectionString ('Server=' + $SQl_Server + ';Database=' + $SQLDateBase + ';Trusted_Connection=True;') -isSQLServer -Query $Args[0]}
После ввода функций с помощью их можно легко получать данные или выполнять различные запросы, например:
GET_Query 'select TOP 10 * From Audit_adm.dbo.Audit_fs'
SET_Query 'delete From Audit_adm.dbo.Audit_fs where DateEvent <= cast (dateadd (day, -180, GETDATE()) as DATE)'
Комментариев нет:
Отправить комментарий