【发布时间】:2017-02-14 10:58:14
【问题描述】:
我正在使用 DbUp 来维护和升级我的 SQL Server 2016 数据库。到目前为止,我执行的典型 SQL 脚本包括创建表、创建或更改存储过程等任务。
我将开始使用内存优化表,并且需要运行 ALTER DATABASE 命令在现有数据库中创建必要的文件组。我尝试运行一个动态 SQL 脚本,该脚本构建并运行 ALTER DATABASE 命令,其中包含该脚本当前正在运行的数据库名称,但由于 DbUp 使用事务执行,因此似乎不允许使用 ALTER 语句,我收到此错误:
Script block number: 2; Block line 1; Message:
System.Data.SqlClient.SqlException (0x80131904): ALTER DATABASE statement not allowed within multi-statement transaction.
ALTER DATABASE statement not allowed within multi-statement transaction.
ALTER DATABASE statement not allowed within multi-statement transaction
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
任何想法如何通过 DbUp 运行 ALTER DATABASE 命令,或者是否有其他方法来处理这种情况?
提前致谢。
【问题讨论】:
标签: .net sql-server database entity-framework-6 database-administration