===== Однострочные решения PowerShell для общих задач SQL Server DBA. Пример 1: Создание сценариев объектов БД SQL Server =====
{{:powershell:sql-server:pasted:20211127-122145.png }} В этой заметке рассмотрены примеры создания однострочных сценариев **PowerShell**, работающих с объектами баз данных **SQL Server**
\\
В первую очередь нужно импортировать PowerShell-модуль SQLPS:
import-module SQLPS -DisableNameChecking;
DIR SQLSERVER:\SQL\SERVERNAME\DEFAULT\
Вывод в скрипт всех внешних ключей T-SQL:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\tables `
| % {$_.foreignkeys } | % {$_.script()};
Если надо сохранить скрипт в файл, лишь добавляем out-file в конец кода:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\tables `
| % {$_.foreignkeys } | % {$_.script()} | out-file "c:\temp\fk.sql" -force;
Вывод в скрипт удаления всех внешних ключей T-SQL:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\tables `
| % {$_.foreignkeys } | % {"alter table $($_.parent) drop $_;"};
Вывод в скрипт всех хранимых процедур:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\StoredProcedures `
| % {$_.script()+'go'};
Вывод в скрипт представлений с префиксом 'vEmployee':
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\Views `
| ? {$_.name -like 'vEmployee*' } | % {$_.script()+'go'};
Вывод в скрипт всех DDL триггеров:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\databases\DBName\Triggers `
| % {$_.script()+'go'};
Вывод в скрипт User Defined Functions:
dir SQLSERVER:\SQL\SSERVERNAME\DEFAULT\databases\DBName\UserDefinedFunctions `
| % {$_.script()+'go'};
Вывод в скрипт Заданий SQL Server Agent, с префиксом 'sys' и сохранение в файл на ''c:\temp\job.sql'', если файл существует, лишь добавляет скрипт к нему:
dir SQLSERVER:\SQL\SERVERNAME\DEFAULT\jobserver\jobs | ? {$_.name -like 'sys*'} `
| % {$_.script()+'go'} | out-file c:\temp\job.sql -append;
----
Проверено на следующих конфигурациях:
^ Версия ОС ^ Версия PowerShell ^ Версия SQL Server ^
| Windows Server 2008R2 | 2.0+ | SQL Server 2012 |
----
{{:user:pokunev.png?50&nolink |}} Автор первичной редакции:\\ [[user:pokunev|Пётр Окунев]] \\ Время публикации: 27.11.2021 11:58
{{tag>PowerShell "SQL Server" "T-SQL"}}
~~DISCUSSION~~