2009年06月19日

自動的に名前が付けられたデータベースをアタッチできませんでした

   このエントリーをはてなブックマークに追加 Clip to Evernote
しばらく前から、Visual Studio 2008 の動作がおかしいです。
NORTHWND.MDFをサーバーエクスプローラから、 「Microsoft SQL Server データベース ファイル (SqlClient)」で接続しようとすると、

ファイル D:\...\NORTHWND.MDF の自動的に名前が付けられたデータベースをアタッチできませんでした。同じ名前のデータベースが既に存在するか、指定されたファイルを開けないか、UNC 共有に配置されています。

というエラーが出て、接続できなくなってしまいました。
不思議なことに、このファイルを Northwnd.mdf と大文字から小文字へリネームすると、接続ができます。

プログラムからの実行でも、同様のエラーが発生し、リネームすると接続できます。
もちろん、SQL Server Management Studio からは、問題なくアタッチできます。

SQL Server側の環境がおかしくなってしまったのか、それとも、.NET Framework側の環境なのか?
何が悪いのかさっぱりわかりません。
OSから再インストールするしかないのかな。   

Posted by gushwell at 22:35Comments(6)TrackBack(0)

2008年05月02日

更新可能なVIEW

   このエントリーをはてなブックマークに追加 Clip to Evernote
SQL Serverに詳しくない僕は、今まで、複数のテーブルに基づいたVIEWは、更新できないのだと思っていました。
でも、できるんですねー。
http://technet.microsoft.com/ja-jp/library/ms175521.aspxに書いてありました。
INSTEAD OF トリガーってのを作る必要があります。
これを作れば、なんとLINQ to SQLからも Viewへの更新が、そのまま基のテーブルへ反映されました。
  
Posted by gushwell at 20:54Comments(0)TrackBack(0)

2008年02月13日

SQL Server のユーザー インスタンスを生成できませんでした

   このエントリーをはてなブックマークに追加 Clip to Evernote
Visual Studio 2008 で、アタッチデータベースを利用しようとし、 [データ]-[新しいデータソースの追加]でMDFファイルを指定すると、

----
ユーザー インスタンスのプロセスを起動中のエラーにより、SQL Server のユーザー インスタンスを生成できませんでした。接続は閉じられます。
----

というメッセージが出るようになってしまった。
前は出なかったと思ったんだけど...

いくつかのサイトにも載っていますが、とりあえずの解決策。
--------------
[接続のプロパティ]ダイアログで、[詳細設定]ボタンを押し、 [詳細プロパティ]ダイアログで、"User Instance" プロパティを Falseに設定する。
--------------

これでOK.

でも、なんで駄目になったんだろうか? 謎です。
  
Posted by gushwell at 20:21Comments(0)TrackBack(0)

2008年01月08日

参照整合性制約

   このエントリーをはてなブックマークに追加 Clip to Evernote
ある資料を読んでいたら、参照整合性制約は、パフォーマンス、テストで面倒なのでおすすめしない、といったことが書いてあった。
えっ、そうなの?
参照整合性制約は、面倒でも使うべき、なのかと思ってた。

データベースに詳しくないのでよくわからないが、それじゃリレーショナルデータベースのリレーショナルって何なのだろう?

間違ったデータを入れないように、すべてプログラムでチェックすることになるし、
テーブル間の関係がドキュメント見ないとと分らないしなー。
それに、LINQ to SQLが作成するエンティティクラス間の関連も作成されない。。。

  
Posted by gushwell at 22:17Comments(0)TrackBack(0)

2007年11月14日

今更ながら SQL Serverの user instanceって何?

   このエントリーをはてなブックマークに追加 Clip to Evernote
今更ながら user instanceって何?

SQL Server Express Editionの user instance って何かわからなかったので
調べてみました。

以下、TechNetからの抜粋
http://technet.microsoft.com/ja-jp/library/ms143684.aspx

----------------------------------
ユーザー インスタンスは、管理者以外のユーザーが各自のアカウントで SQL Server
のローカル バージョンを実行できるようにする機能です。ユーザー インスタンスを使
用すれば、管理者以外のユーザーが、各自のアカウント内で実行中のインスタンスに対
するデータベース所有者の特権を得ることができます。

ユーザーは、親インスタンス上では管理者ではない場合でも、この新しいユーザー イ
ンスタンスには SysAdmin として接続し、データベースを使用します。

ユーザー インスタンスは、SQL Server 認証をサポートしません。Windows 認証だけが
サポートされます。

ユーザー インスタンスに対するネットワーク プロトコルのサポートは、ローカルの名
前付きパイプのみです。
----------------------------------

なるほど。
  
Posted by gushwell at 21:40Comments(0)TrackBack(0)

2007年04月26日

SQL Server 2005 を リモートデスクトップでインストール

   このエントリーをはてなブックマークに追加 Clip to Evernote
SQL Server 2005 を リモートデスクトップの機能を使い、サーバーにインストール
しようとしたら、エラーではじかれてしまいます。

手順は、

まずは、
リモートデスクトップの接続ダイアログの「オプション」ボタンを押して、ローカルリソースタブのローカルディスクにある「リモート コンピュータにログオンしたときに自動的に接続するローカル デバイス:」で、ディスクドライブにチェックをします。

これで、ログオンすれば、ローカルのCD-ROMドライブは、リモートデスクトップ上でもマイコンピュータ上に現れるようになります。
このドライブに SQL ServerのCDをセットし、SETUP.EXE を起動します。

途中までは、インストールが進むのですが、途中で「権限がない」と言われてしまい、先に進みません。

たしか、前にやったときは問題なくインストールできたと思ったのだけど。

どんな違いがあるのか、当時のことを思い出してみると、以前は、CD-ROMにあるファイルを、サーバーのローカルディスクにコピーし、そこから SETUP.EXEを起動していたことを思い出しました。

で、CD-ROMにあるファイルを サーバーにコピーして、インストールを開始。
無事、インストールできました。
  
Posted by gushwell at 23:43Comments(0)TrackBack(0)

2007年02月08日

SQL Server 2005 のアタッチ

   このエントリーをはてなブックマークに追加 Clip to Evernote
SQL Server 2005 Express Editionで作成したデータベースファイルを他のコンピュータにコピーし、SQL Server 2005 Developer Editionでアタッチしたら、読み取り専用 になってしまった。

Management Studioで、読み取り専用解除しようとしても、エラーになって
しまう。
権限の周りではじかれているような感じ。

mdf ファイルのへのアクセス権の問題なのかな?

そう考えて、SQLServer2005MSSQLUser$xxxxx のアクセス権を付加してみた。無事、読み取り専用を解除できた。
SQL Server 2005はまだわからないことだらけです。
  
Posted by gushwell at 21:50Comments(2)TrackBack(0)

2007年02月01日

SQL Server 2005 Express Edition SP1のインストール

   このエントリーをはてなブックマークに追加 Clip to Evernote
SQL Server 2005 Express Edition SP1 を適用しようとしたら、途中でエラーになる。
原因がわからないので、SQL Server 2005 Express Edition をアンインストールしようとしたけど、アンインストールの方法がわからない(T T)。

今まで、SQL Serverをアンインストールしたことなかったからな。

SQL Server 2005 Express Editionのアンインストール方法は、以下のとおり。
-----
プログラムの追加と削除で、SQL Server 2005 の 削除を選ぶ。
アンインストールするコンポーネントの一覧から、Express Edtion のインスタンスを選択。
-----

いやー、SQL Server 2005の中に、Express Editionがあったんだ。


その後、再度、SQL Server 2005 Express Edition SP1 を適用したら、うまくインストールすることができた。  
Posted by gushwell at 20:03Comments(0)TrackBack(0)