В этой заметке рассмотрены примеры создания однострочных сценариев 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 |
Автор первичной редакции:
Пётр Окунев
Время публикации: 27.11.2021 11:58