Published on

October 25, 2007

Экспорт вывода SQL Server в текст или XML с помощью PowerShell

PowerShell – это мощный сценарный язык, который можно использовать для автоматизации задач в SQL Server. В этой статье мы рассмотрим, как использовать командлеты PowerShell в сочетании с клиентом SQL Server и перенаправлением вывода для экспорта вывода запроса SQL Server в текстовый файл или файл XML.

Предварительные требования

Прежде чем мы начнем, убедитесь, что у вас установлен PowerShell на вашем компьютере. Вы можете скачать и установить PowerShell с официального веб-сайта Microsoft.

Создание сценария PowerShell

Чтобы экспортировать вывод запроса SQL Server, нам нужно создать сценарий PowerShell. Допустим, мы хотим выполнить запрос к таблице SQL Server с использованием Transact-SQL и сохранить вывод в формате текста или XML.

Вот пример сценария PowerShell, который достигает этого:

param (
    [string] $SQLServer,
    [string] $Database,
    [string] $outputType,
    [string] $filename,
    [string] $Query
)

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=$SQLServer;Database=$Database;Integrated Security=True"

$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $Query
$SqlCmd.Connection = $SqlConnection

$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd

$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)

$SqlConnection.Close()

if ($outputType -eq "Text") {
    $DataSet.Tables[0] | format-table -auto > $filename
}

if ($outputType -eq "xml") {
    $DataSet.Tables[0] | Export-Clixml $filename
}

В этом сценарии мы определяем параметры для экземпляра SQL Server, базы данных, типа вывода (текст или XML), имени файла и выполняемого запроса. Сценарий устанавливает соединение с SQL Server, выполняет запрос и сохраняет результат в набор данных. В зависимости от указанного типа вывода, сценарий либо форматирует набор данных в виде таблицы и сохраняет его в текстовый файл, либо экспортирует его в формате XML.

Выполнение сценария PowerShell

Чтобы выполнить сценарий PowerShell, откройте командную строку PowerShell и перейдите в папку, где сохранен сценарий.

Запустите сценарий с помощью следующей команды:

./output.ps1 "ИмяСервераСSQL" "ИмяБазыДанных" "Текст" "C:\output.txt" "SELECT * FROM ИмяТаблицы"

Замените “ИмяСервераСSQL” на имя вашего экземпляра SQL Server, “ИмяБазыДанных” на имя вашей базы данных, “Текст” на желаемый формат вывода (либо “Текст”, либо “XML”), “C:\output.txt” на желаемое имя файла и расположение, а “SELECT * FROM ИмяТаблицы” на ваш фактический запрос Transact-SQL.

При выполнении сценария он будет запрашивать базу данных и сохранять вывод в указанном файле.

Заключение

В этой статье мы узнали, как использовать командлеты PowerShell в сочетании с клиентом SQL Server и перенаправлением вывода для экспорта вывода запроса SQL Server в текстовый файл или файл XML. Это может быть полезной техникой для автоматизации экспорта данных и создания отчетов из SQL Server.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.