2009年06月19日

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

しばらく前から、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

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 のユーザー インスタンスを生成できませんでした

Visual Studio 2008 で、アタッチデータベースを利用しようとし、 [データ]-[新しいデータソースの追加]でMDFファイルを指定すると、

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

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

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

これでOK.

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

2008年01月08日

参照整合性制約

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

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

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

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

2007年11月14日

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

今更ながら 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 を リモートデスクトップでインストール

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 のアタッチ

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のインストール

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)