「SQL01268:MSG 1834:上書きの原因」を引き起こすもの。データベースで使用されています」? (データベースプロジェクト)

StackOverflow https://stackoverflow.com/questions/8411394

質問

以下の完全なエラー:

エラー1 SQL01268:.NET SQLCLIANTデータプロバイダー:MSG 1834、レベル16、状態1、行1ファイル 'C: Program Files Microsoft SQL Server MSSQL10.SQLEXPRESS MSSQL DATA TestDataBase.mdfデータベース「TestDataBase」で使用されています。 Schemacompare5 25 0

私はいくつかのフォーラムでこれについて読みました、そして、かなりの数の人々がこれを手に入れていました、そしておそらくいくつかのために、それはDBなどにファイルパス名をパラメーター化することに関係していました。比較を行う - これは役に立たなかった。

同じ/同様の問題を抱えている他の誰か: http://social.msdn.microsoft.com/forums/en/vstsdb/thread/5a8b8c52-adb4-4a5a-95ed-09ad22bacf60

基本的に私にとっては、ターゲットとソースに使用しているデータベースに関係なく、このエラーが発生しているようです。 1つのテーブルとテーブルと異なる名前のある別のデータベースを備えた新しいデータベースを作成し、DBを使用してテーブルのないデータベースのスキーマを1つのテーブルで使用しないデータベースを更新しても、エラーが発生します。 SQL Server Expressがナットになったように。問題なくスキーマ比較ツールを使用したことを覚えています。すべてのDB接続が作成され、これを実行するための多くの方法を試しました。

また、誰かがスキーム比較ツールが作成するいくつかのファイルを削除するという同様の問題を解決したと読んだと信じています。

役に立ちましたか?

解決

データベースファイルがすでに存在するため、問題が発生します。

Visual Studioデータベースプロジェクト内で以下をお試しください。

スキーマ比較を作成します。

メニューに移動:データ>スキーマ比較>> editorへのエクスポート

スクリプトが作成されたら、物理ファイルを追加するAlter Databaseコマンドを削除します。次に、接続を作成し、SQLCMDモードに切り替え(スクリプトに焦点を合わせていることを確認してください)、スクリプトを実行します。

SQLCMDモードに切り替えるには、アクセス:データ> Transact-SQLエディター> SQLCMDモード

他のヒント

ターゲットDBが既に存在する場合は、最初に展開する前に、まず管理スタジオを介して削除するだけです。

SQL Server Projectを作成する際に、元の接続を確立しているときに、SQL Server Management Studioを介してデータベースを手動で作成していました。データベースが存在することを検出するまで続行することはできません。その後、初めて展開ステップに到達したら、上記と同じエラーを投げました。私はちょうどマネジメントスタジオに入ってDBを削除してから展開しようとしましたが、それは正常に機能しました。興味深いことに、私が入って毎回削除する必要なく、毎回毎回展開しています。

      RESTORE DATABASE B FROM DISK = 'A.bak'
      WITH MOVE 'DataFileLogicalName' TO 'C:\SQL Directory\DATA\B.mdf',
      MOVE 'LogFileLogicalName' TO 'C:\SQL Directory\DATA\B.ldf',
      REPLACE     ---> Needed if database B already exists
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top