Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


Боковая панель

powershell:sql-server:powershell-one-line-solutions-for-common-sql-server-dba-tasks-scripting-sql-server-database-objects

Однострочные решения PowerShell для общих задач SQL Server DBA. Пример 1: Создание сценариев объектов БД SQL Server

В этой заметке рассмотрены примеры создания однострочных сценариев 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

Обсуждение

Ваш комментарий:
 

powershell/sql-server/powershell-one-line-solutions-for-common-sql-server-dba-tasks-scripting-sql-server-database-objects.txt · Последнее изменение: 01.12.2021 19:51 — Пётр Окунев