1) SP と関数の Create コードをエクスポートします。バックアップしておきましょう。たとえば、D:\SP2.sql"
2) このトランザクション SQL コードは、既存の SP および関数を削除するスクリプトを生成します。
SELECT 'DROP PROCEDURE [' + SCHEMA_NAME(p.schema_id) + '].[' + p.NAME + ']' as A
FROM sys.procedures p
union
SELECT 'DROP FUNCTION ' + [name]
FROM sysobjects WHERE [type] IN (N'FN', N'IF', N'TF', N'FS', N'FT') AND category = 0
order by a
3) この Poweshell コードは次のように置き換えられます
AS
BEGIN
に
WITH ENCRYPTION
AS
BEGIN
コード
$File = "D:\SP2.sql"
$File2 = $File.Replace("SP2.sql","SP-WithEncrypt.sql")
$sortie=""
$SP = get-content -path $file
echo $SP.Count
For ($i = 0 ; $i -le $SP.Count)
{ if ($sp[$i] -eq "AS" -and $sp[$i+1] -eq "BEGIN")
{ $AEcrire = "`nWITH ENCRYPTION `n AS `n BEGIN"
$i+=1
}
else
{$AEcrire =$sp[$i]
}
$sortie += "`n$AEcrire"
$i+=1
$SP.Count-$i
}
$sortie| out-file $File2
.replace( ,) を使用すると高速になりますが、行末に問題があります...
4) SSMS で SP-WithEncrypt.sql を実行します。