sql >> データベース >  >> Database Tools >> SSMS

Powershell:SQL ServerManagementStudioスクリプトジェネレーター

    この質問はしばらくの間ここにあり、おそらく今までに答えが見つかりましたが、これを行う簡単な方法を探している人のために、SQL Server Powershellモジュールの現在のバージョンには、SMOのこの機能をサポートするネイティブコマンドとメソッドがあります。

    Get-SqlDatabaseを使用できます および.Script()などのメソッド および.EnumScript()。

    たとえば、これにより、ユーザー定義関数のCREATEスクリプトが生成され、ファイルに保存されます。

    $Database = Get-SqlDatabase -ServerInstance $YourSqlServer -Name $YourDatabaseName
    
    $MyFuncs = $Database.UserDefinedFunctions | Where Schema -eq "dbo"
    $MyFuncs.Script() | Out-File -FilePath ".\SqlScripts\MyFunctions.sql"
    

    スクリプトデータが必要な場合 インデックス、キー、トリガーなどの要素。次のようにスクリプトオプションを指定する必要があります。

    $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"
    

    Script()メソッドはスクリプトデータをサポートしていないことに注意してください。テーブルにはEnumScript()を使用します。

    求められたとおりにデータのみをスクリプト化する場合は、$scriptOptions.ScriptData = $Trueを試すことができます。 および$scriptOptions.ScriptSchema = $False




    1. MySQLWorkbench非互換/非標準サーバー

    2. 値に制約を追加、Mysql

    3. MyISAMテーブルのphpMyAdminで内部関係は何をしますか?

    4. 無効なオブジェクト名-ストアドプロシージャ