none
Как сделать скрипт структуры БД не используя Tasks->Generate Scripts... из Microsoft SQL Server Management Studio? RRS feed

  • Вопрос

  • Как сделать скрипт структуры БД не используя Tasks->Generate Scripts... из Microsoft SQL Server Management Studio может можно вызвать эту функцию через SQLQuery?

Ответы

Все ответы

  • Никак, вернее малой кровью никак, ssms выполняет кучу работы, для генерации этого скрипта.


    Все должно быть просто, очень просто, настолько просто, насколько это возможно.
    1 июня 2011 г. 13:25
  • Generate Scripts for database objects with SMO for SQL Server

     


    For every expert, there is an equal and opposite expert. - Becker's Law


    My blog
    • Помечено в качестве ответа Abolmasov Dmitry 5 июня 2011 г. 6:34
    1 июня 2011 г. 14:00
  • скрипт на PoSh

     

    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SMO") | out-null
     
    $s = new-object ('Microsoft.SqlServer.Management.Smo.Server') '.\SQLEXPRESS'
    $db = $s.Databases['ProjectDemo']
     
    $scrp = new-object ('Microsoft.SqlServer.Management.Smo.Scripter') ($s)
    
    $scrp.Options.AnsiPadding = $TRUE
    $scrp.Options.AppendToFile = $False
    $scrp.Options.ClusteredIndexes = $True
    $scrp.Options.ScriptDrops = $FALSE
    $scrp.Options.ScriptSchema = $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 = 'C:\Script_DB_PoSh.SQL'
     
    $scrp.Script([Microsoft.SqlServer.Management.Smo.SqlSmoObject[]]$db.Tables)
    но он скриптует только структуру.
    что нужно добавить в PoSh-скрипт, чтобы в скрипт SQL сохранялось создание БД, аналогичной исходной?

    • Изменено yagorik 9 июня 2011 г. 12:03