none
PoSh-скрипт для создания скрипта структуры БД RRS feed

  • Вопрос

  • скрипт на PoSh

    $server = Read-Host "Укажите имя сервера БД"
    $database = Read-Host "Имя БД"
    $output_file = Read-Host "Вывести результат в файл (укажите путь и имя файла) Например: C:\SQL2000_script.sql"
    
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
    
    $srv = new-object ('Microsoft.SqlServer.Management.Smo.Server') $server
    $db = New-Object ("Microsoft.SqlServer.Management.SMO.Database")
    $tbl = New-Object ("Microsoft.SqlServer.Management.SMO.Table")
    
    $db = $srv.Databases[$database]
    $scrp = new-object ('Microsoft.SqlServer.Management.Smo.Scripter') ($server)
    $scrp.Options.AnsiPadding = $TRUE
    $scrp.Options.AppendToFile = $False
    $scrp.Options.ClusteredIndexes = $True
    $scrp.Options.ScriptDrops = $true
    $scrp.Options.ScriptSchema = $True
    $scrp.Options.WithDependencies = $True
    $scrp.Options.DriAll = $True
    $scrp.Options.NoCollation = $False
    $scrp.Options.IncludeHeaders = $True
    $scrp.Options.ToFileOnly = $True
    $scrp.Options.Indexes = $True
    $scrp.Options.IncludeDatabaseContext = $TRUE
    $scrp.Options.WithDependencies = $True
    $scrp.Options.TargetServerVersion = [Microsoft.SqlServer.Management.Smo.SqlServerVersion]::Version80
    $scrp.Options.FileName = $output_file
    
    $scrp.Script([Microsoft.SqlServer.Management.Smo.SqlSmoObject[]]$db.Tables)
    
    Но он не скриптует создание БД. Что добавить чтобы он скиптовал и создание БД?


Ответы

  • может кому понадобится:
    $sc.ToFileOnly = $True
    $sc.IncludeHeaders = $True
    $sc.FileName = $output_file
    $sc.IncludeDatabaseContext = $TRUE
    $sc.TargetServerVersion = [Microsoft.SqlServer.Management.Smo.SqlServerVersion]::Version80
    
    $db.Script($sc)
    $scrp.Script([Microsoft.SqlServer.Management.Smo.SqlSmoObject[]]$db.Tables)
    
    • Помечено в качестве ответа yagorik 9 июня 2011 г. 16:20
    9 июня 2011 г. 16:19