通过命令行部署SQL Server数据库项目(SSDT)

时间:2011-12-03 23:26:36

标签: sql-server visual-studio sql-server-data-tools sqlpackage

我有一个针对SQL Server 2012 RC0数据库的SQL Server数据库项目。该项目是在Visual Studio 2010 + SQL Server数据工具CTP4中创建的。项目类型与常规Visual Studio 2010数据库项目不同(它是SQL Developer Tools CTP3 Juneau的下一个版本)。

它在IDE中部署得很好。如何通过命令行部署它?

我尝试过VSDBCMD.exe,但它需要一个不是由新项目类型创建的.deploymanifest文件。

2 个答案:

答案 0 :(得分:25)

使用 sqlpackage.exe ,位于C:\Program Files\Microsoft SQL Server\{version}\DAC\binC:\Program Files (x86)\Microsoft SQL Server\{version}\DAC\bin {version} = 110(SQL Server 2012),{{1} (SQL Server 2014)等。

命令行参数:

120

例:
/Action:{Extract|Report|Publish|Script} Specifies the action to be performed. (short form /a) /Quiet[+|-] Specifies whether detailed feedback is suppressed. Defaults to False. (short form /q) /OverwriteFiles[+|-] Specifies if sqlpackage.exe should overwrite existing files. Specifying false causes sqlpackage.exe to abort action if an existing file is encountered. Default value is True. (short form /of) /SourceServerName:<string> Defines the name of the server hosting the source database. (short form /ssn) /SourceDatabaseName:<string> Defines the name of the source database. (short form /sdn) /SourceUser:<string> For SQL Server auth scenarios, defines the SQL Server user to use to access the source database. (short form /su) /SourcePassword:<string> For SQL Server auth scenarios, defines the password to use to access the source database. (short form /sp) /SourceTimeout:<int> Specifies the timeout for establishing a connection to the source database in seconds. (short form /st) /SourceEncryptConnection[+|-] Specifies if SQL encryption should be used for the source database connection. (short form /sec) /SourceTrustServerCertificate[+|-] Specifies whether to use SSL to encrypt the source database connection and bypass walking the certificate chain to validate trust. (short form /stsc) /SourceConnectionString:<string> Specifies a valid SQL Server/Azure connection string to the source database. If this parameter is specified it shall be used exclusively of all other source parameters. (short form /scs) /SourceFile:<string> Specifies a source file to be used as the source of action instead of a database. If this parameter is used, no other source parameter shall be valid. (short form /sf) /TargetServerName:<string> Defines the name of the server hosting the target database. (short form /tsn) /TargetDatabaseName:<string> Specifies an override for the name of the database that is the target of sqlpackage.exe Action. (short form /tdn) /TargetUser:<string> For SQL Server auth scenarios, defines the SQL Server user to use to access the target database. (short form /tu) /TargetPassword:<string> For SQL Server auth scenarios, defines the password to use to access the target database. (short form /tp) /TargetTimeout:<int> Specifies the timeout for establishing a connection to the target database in seconds. (short form /tt) /TargetEncryptConnection[+|-] Specifies if SQL encryption should be used for the target database connection. (short form /tec) /TargetTrustServerCertificate[+|-] Specifies whether to use SSL to encrypt the target database connection and bypass walking the certificate chain to validate trust. (short form /ttsc) /TargetConnectionString:<string> Specifies a valid SQL Server/Azure connection string to the target database. If this parameter is specified it shall be used exclusively of all other target parameters. (short form /tcs) /TargetFile:<string> Specifies a target file (i.e., a .dacpac files) to be used as the target of action instead of a database. If this parameter is used, no other target parameter shall be valid. This parameter shall be invalid for actions that only support database targets. (short form /tf) /Properties:<string> A name value pair for a Publish property, {PropertyName}={Value}. Refer to the help for the Publish action for valid property names. (short form /p) /Variables:<string> Optional only if /Action:Publish is specified. Valid values for parameter name shall be SQL Command variables specified in the .dacpac file only. Parameter names specified that are not declared in the .dacpac shall result in an error. Valid command variable values shall be context-specific based on the command variable itself (e.g., database name vs. schema names). (short form /v) /Profile:<string> Optional if /Action:Publish is specified. Valid value is a file path to a Publish Profile. A user shall be able to use a Publish Profile to define the collection of Publish Properties to use for a Publish episode. (short form /pr) /OutputPath:<string> Required if /Action:Report or /Action:Script is specified. Valid value is a file path to where the comparison report shall be written. (short form /op) @<file> Read response file for more options.

目标数据库详细信息存储在配置文件中:
sqlpackage.exe /Action:Publish /SourceFile:C:\DbProject\bin\Debug\DbProject.dacpac /TargetServerName:localhost /TargetDatabaseName:TestDb

如果收到错误“无法连接到目标服务器”,请确保使用的是正确版本的sqlpackage.exe(有关详细信息,请参阅here)。

答案 1 :(得分:2)

如果您是受虐狂,Microsoft还会以“使用PowerShell&#39;”为幌子提供documentation on deploying the DACPAC via SMO

当然你也可以从PowerShell调用sqlpackage ......