ここ数日、VS 2005 SQL Server Express というプログラムを作成しました。ドキュメントを注意深く確認したところ、ターゲット コンピュータに SQL Server Express がある限り、SQL Server Express は XCOPY 展開方法をサポートしていることがわかりました。必要なのはデータベースをコピーすることだけで、プログラムと同じディレクトリで、接続文字列の AttachDBFileName パラメータを構成できます。データベースは自動的に SQL Server Express に接続され、実行後に自動的に接続が解除されます。良い気がして猫に倣うが、「データベースが圧縮されているため作成できません。解凍する必要があります。」というエラーが表示される。うわー、いつ圧縮されたのですか?それはシンクの問題なのでしょうか? n 時間作業した後、解決策が見つからずに眠りについた。
翌日も喧嘩しましたが、ネットや情報を調べても解決策が見つからず、諦めようと思いましたが諦められませんでした。管理インターフェイスのアタッチ データベースにもこのエラーが発生していることを偶然発見しましたが、元のディレクトリのデータベースには問題はありませんでした。データベースをプログラム ディレクトリ (D: ドライブ上、SQL Server Express は C: ドライブにインストールされている) にコピーするとエラーが発生します。それが問題ではないでしょうか?
プログラムディレクトリを C ドライブに移動し、すべてが正常になりましたが、完全に気を失いました。自動的にアタッチされるデータベースは C ドライブに存在する必要がありますか? ? ?
さらに、データベース ファイルが読み取り専用に設定されている場合、どのディスクに存在してもマウントできますが、読み取り専用のデータベースになります。
問題は解決しましたが、原理がわかりません。バグですか、それともシステムの問題ですか?
実際、Sybase の SQL Anywhere は非常に優れており、データベースの起動時にデータベース管理システムが自動的に終了します。SQL Server Express もこの機能をサポートしていれば良いのにと思います。データベースを使用しないのは好きではありませんが、同時に SQL Server サービスも実行されています。 Access は Microsoft ストアド プロシージャさえサポートしていないため、愛していると言うのは簡単ではありません。
ブログ:ZhangJinglin