sql >> Databáze >  >> Database Tools >> SSMS

Powershell:Generátor skriptů SQL Server Management Studio

Tato otázka tu byla nějakou dobu a pravděpodobně jste již našli svou odpověď, ale pro ty, kteří hledají jednoduchý způsob, jak to udělat, aktuální verze modulů SQL serveru Powershell mají nativní příkazy a metody, které tuto funkci podporují od SMO.

Můžete použít Get-SqlDatabase a metody jako .Script() a .EnumScript().

Například to vygeneruje CREATE skripty pro uživatelem definované funkce a uloží je do souboru:

$Database = Get-SqlDatabase -ServerInstance $YourSqlServer -Name $YourDatabaseName

$MyFuncs = $Database.UserDefinedFunctions | Where Schema -eq "dbo"
$MyFuncs.Script() | Out-File -FilePath ".\SqlScripts\MyFunctions.sql"

Pokud chcete skriptovat data a prvky, jako jsou indexy, klíče, spouštěče atd., budete muset zadat možnosti skriptování, například takto:

$scriptOptions = New-Object -TypeName Microsoft.SqlServer.Management.Smo.ScriptingOptions

$scriptOptions.NoCollation = $True
$scriptOptions.Indexes = $True
$scriptOptions.Triggers = $True
$scriptOptions.DriAll = $True
$scriptOptions.ScriptData = $True

$Database.Tables.EnumScript($scriptOptions) | Out-File -FilePath ".\AllMyTables.sql"

Všimněte si, že metoda Script() nepodporuje skriptovací data. Pro tabulky použijte EnumScript().

Pokud chcete skriptovat pouze data, jak je požadováno, můžete zkusit $scriptOptions.ScriptData = $True a $scriptOptions.ScriptSchema = $False .




  1. Nelze nastavit Foreign_key_checks na 0 / off

  2. Zabraňte vstupu ovlivněných řádků v exportu souboru ze SSMS

  3. Skriptujte všechna zobrazení/funkce/procedury v databázi SQL Server v pořadí závislostí

  4. Instalace phpmyadmin s home-brew