===== Однострочные решения 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~~