0

DbUpを使用して、SQL Server 2016データベースのメンテナンスとアップグレードを行っています。私がこれまで実行してきた典型的なSQLスクリプトには、テーブルの作成、ストアドプロシージャの作成や変更などのタスクが含まれていました。DbUpスクリプトからalter databaseコマンドを実行するには?

メモリ最適化テーブルの使用を開始し、ALTER DATABASEコマンドを実行して必要なファイルグループを作成する必要があります。既存のデータベース私は、スクリプトが現在実行中のデータベース名を含むALTER DATABASEコマンドをビルドして実行する動的SQLスクリプトを実行しようとしましたが、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コマンドを実行することができますか、または別の方法でこのケースを処理する方法はありますか?

ありがとうございます。

答えて

0

データベースを変更するには、排他的なデータベースアクセスが必要です。

  1. あなたは
  2. は、すべての保留中のトランザクションを殺すコードの切断にデータベースへの他のすべての接続を行う必要があるだろう。

ALTERコマンドを試してみてください
関連する問題