如何通过查询生成数据库脚本。 (非GUI)

时间:2019-05-16 04:14:25

标签: sql-server

我试图通过查询生成脚本,因为我想轻松创建相同的设置。我检查了MSdoc,但是没有方法。

我在WindowsServer2012 R2 Standard上使用SSMS v17.6,SQLServer2016(SP2)。

通过GUI,数据库右键单击=>任务=>生成脚本=>选择数据库对象并设置一些设置。 我想通过查询生成。

1 个答案:

答案 0 :(得分:0)

您可以按照以下步骤自动创建数据库。

  1. 首先使用Export Data Tier Application

  2. 将数据库导出为dapac
  3. 在计划进行部署的环境中安装SQLPackage.exe。您可以下载sqlpackage.exe download path。它将用于自动从DACPAC生成脚本。

  4. 一旦有了数据库的DACPAC,就可以将其发布到任何环境。需要注意的是,Sqlpackage.exe会生成增量脚本,并与目标数据库进行比较。如果要完整的CREATE脚本,则可以指向任何空数据库或系统数据库(如master)来生成增量CREATE脚本(此处将是完整的数据库脚本,因为目标是空数据库)。生成的脚本将出现在输出路径中(此处为C:\ temp)

  

注意:我们正在设置参数(将DropObjectsNotInSource设置为false),以避免生成目标数据库的放置对象,即   在源DACPAC中丢失。

"<Path>\SqlPackage.exe"
/Action:script
/SourceFile:“<Path>\Database.dacpac” 
/TargetDatabaseName:master
/TargetServerName:"localhost"
/OutputPath:C:\temp
/p:DropObjectsNotInSource:false

更新

我看到,现在有一个工具mssql-scripter(当前处于预览状态)可以执行SQL Server Management Studio的“生成脚本”向导的相同活动。您可以在这里查看有关该工具的信息:https://github.com/Microsoft/mssql-scripter