Массовая замена текста в объектах SQL Server
Если у вас возникнет потребность внести массовые изменения во все объекты БД (заменить одно значение на другое), то следующий скрипт сможет облегчить вам эту задачу. Кроме того, что он заменять указанный текст на новый, он ещё сохраняет на диск старую и новую версию файла, а это поможет вам в последствии легко заменить файлы в системе контроля версий, например, в TFS.
Скрипт написан на PowerShell и в текущей реализации работает с процедурами, функциями, триггерами и представлениями, но может быть легко дополнен. Для выгрузки скриптов в файлы используются два параметра: $backupFolder и $changeFolder. Кроме того, если вам не нужно заменять объекты на сервере, а только выгрузить файлы для последующей замены, то достаточно поменять параметр $alter с $true на $false.
$ServerName=Read-Host "Укажите имя сервера БД" # Определяем имя БД $DatabaseName=Read-Host "Введите имя БД" # Определяем текст для поиска $OldText=Read-Host "Введите текст для поиска" # Определяем текст для замены $NewText=Read-Host "Введите текст для замены" $backupFolder = "c:\temp\old\"; $changeFolder = "c:\temp\new\"; $alter = $true; [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null $server=new-object("Microsoft.SqlServer.Management.Smo.Server") $ServerName #Имя БД, с которой работаем $db = $server.Databases[$DatabaseName] # Создаём соединение $SQLConnection = New-Obj...читать дальше...