Published on

March 7, 2019

Экспорт базы данных SQL Server в файл Excel

Вам когда-нибудь приходилось экспортировать всю базу данных SQL Server в файл Excel? Это может быть не такая уж и частая задача, но есть ситуации, когда это может быть полезно. Например, при создании демонстрационного примера Power BI с образцовыми данными, которые должны быть взяты из файлов, а не из базы данных.

К счастью, экспорт базы данных SQL Server в файл Excel оказывается удивительно простым с помощью модуля PowerShell ImportExcel. Прежде чем начать, убедитесь, что у вас установлен этот модуль и скопирована нужная база данных на ваш SQL Server.

Для экспорта базы данных вы можете просто перебрать таблицы, запросить их с помощью командлета Read-SqlTableData и передать результаты командлету Export-Excel. Давайте рассмотрим пример:

#Requires -Modules SqlServer
#Requires -Modules ImportExcel

# Измените имя экземпляра SQL Server как в SQL Provider, так и в командлете Read-SqlTableData
cd SQLSERVER:SQL LocalHostSQL2017 DatabasesAdventureWorksDW2017Tables

# Экспорт всех таблиц измерений в отдельные листы в том же файле Excel
dir | WHERE { $_.name -like 'dim*' } | foreach {
    "$($_.Name)" Read-SqlTableData -ServerInstance LocalHostSQL2017 -DatabaseName AdventureWorksDW2017 -SchemaName dbo -TableName $_.Name -OutputAs DataRows | Export-Excel -Path "c:tempAWAdventureWorksDW2017_Dims.xlsx" -WorksheetName $_.Name -ExcludeProperty RowError, RowState, Table, ItemArray, HasErrors
}

# Экспорт каждой таблицы фактов в отдельный файл Excel
dir | WHERE { $_.name -like 'fact*' } | foreach {
    "$($_.Name)" Read-SqlTableData -ServerInstance LocalHostSQL2017 -DatabaseName AdventureWorksDW2017 -SchemaName dbo -TableName $_.Name -OutputAs DataRows | Export-Excel -Path "c:tempAW$($_.Name).xlsx" -WorksheetName $_.Name -ExcludeProperty IsReadOnly, IsFixedSize, IsSynchronized, SyncRoot, Count
}

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

Если вы решите попробовать это сами, убедитесь, что установлены модули SqlServer и ImportExcel, и импортируйте их в вашу сессию PowerShell. Кроме того, не забудьте изменить имя экземпляра SQL Server как в SQL Provider, так и в командлете Read-SqlTableData, чтобы оно соответствовало вашей среде.

После того, как вы все настроили, попробуйте и посмотрите, насколько легко или сложно для вас экспортировать базу данных SQL Server в Excel. Не стесняйтесь оставить комментарий и поделиться своим опытом!

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.