SQL Server 2005 Express EditionにはAttachDbFilename というすばらしい機能が搭載されています。
#うちのところじゃまだ紹介していませんね、やらないと
この機能は1つのmdfファイルを一時的にSQL Serverに接続させ利用するというまるでmdbファイルを使っているかのようにSQL Serverを利用するというすばらしい機能です。
しかし・・・・
なんとこの機能はExpress Editionにしか搭載されていません。おそらくシナリオとしてはWorkgroup Edition, Standard Edition, Enterprise Editionなんかを入れているマシンは本番機でしょ?クライアントにはExpressEditionしかいれてないでしょ?ていうシナリオでしょう。
しかし開発マシンにはDeveloper Editionが組み込まれるのが通例ですし、SQL Server開発の場合には自前でサーバを持つことも普通です。
Visual Studio 2005のWebサイト開発では、パーソナルWebサイトスタートキットというものがあります。これはWeb.configで
<add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|aspnetdb.mdf" />
のようにAttachDBFileName機能を使っています。
ということは開発マシンではきちんと動かない場合も多いということです。ちなみにうちの環境で
[SqlException (0x80131904): タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。]
というエラーが出てしまいました。
なんとか製品までに改善して欲しいと思います。
#本当はAttachDBFileName機能を他のエディションでも(デフォルトは無効でいいから)使いたいんですよ。
http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=b77b3ef6-f8c3-4f6c-8c58-58de35cb62a2
投票お願いします。
#AttachDBFileNameへの賛同もこちらにコメントしてもらえると力強いです。