@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

同じインスタンスの複数データベースを持つSQLServerへのコネクションについて

1
投稿者投稿内容
lionking
会議室デビュー日: 2007/11/14
投稿数: 5
投稿日時: 2007-11-14 11:22
同じインスタンスの複数データベースを持つSQLServerへのコネクションは可能でしょうか?ご存知でしょうか?教えて頂けば幸いです。
(DBはSQL Server2000、言語はC#です。)
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2007-11-14 16:19
可能。
lionking
会議室デビュー日: 2007/11/14
投稿数: 5
投稿日時: 2007-11-14 16:45
Yam様
可能であれば、その方法を教えて頂きませんか。
Yam
大ベテラン
会議室デビュー日: 2003/09/13
投稿数: 179
お住まい・勤務地: だんじり祭りの地
投稿日時: 2007-11-14 17:18
接続文字列を下記のように指定します。
コード:
SqlConnection.ConnectionString = @"Data Source=サーバ名¥インスタンス名;Initial Catalog=データベース名;…"

lionking
会議室デビュー日: 2007/11/14
投稿数: 5
投稿日時: 2007-11-14 17:30
> 接続文字列を下記のように指定します。
> コード:
> SqlConnection.ConnectionString = @"Data Source=サーバ名¥インスタンス
名;Initial Catalog=データベース名;…"

⇒ これは同じサーバに複数インスタンスの場合の接続文字列ですね?
 やりたいのは、同じインスタンスの複数DB(2つ)に対す操作(Select)をしたいです、
 その2つデーターベース名は外部ファイルに設定されています。
 この場合、やり方がご存知でしょうか?

PS:確かにEXECUTE sp_executesqlを使って、SPのSQL文を文字列にすれば、対応できますが、より簡単な方法を探しています。
ugaya
会議室デビュー日: 2006/08/03
投稿数: 18
投稿日時: 2007-11-14 17:59
引用:

lionkingさんの書き込み (2007-11-14 17:30) より:
> 接続文字列を下記のように指定します。
> コード:
> SqlConnection.ConnectionString = @"Data Source=サーバ名¥インスタンス
名;Initial Catalog=データベース名;…"

⇒ これは同じサーバに複数インスタンスの場合の接続文字列ですね?
 やりたいのは、同じインスタンスの複数DB(2つ)に対す操作(Select)をしたいです、
 その2つデーターベース名は外部ファイルに設定されています。
 この場合、やり方がご存知でしょうか?

PS:確かにEXECUTE sp_executesqlを使って、SPのSQL文を文字列にすれば、対応できますが、より簡単な方法を探しています。



Initial Catalogだけ変えればよい話ではないのですか?
あとSPのSQL文とはなんのことでしょうか?
上総
大ベテラン
会議室デビュー日: 2006/06/22
投稿数: 107
投稿日時: 2007-11-14 18:37
やりたい事が全くと言っていいほど見えてきませんね。
スレ主さんの別スレ[件名:SQL Server2000のデータベース名前の取得について]
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=42241&forum=7
で記載されている内容を、こちらのスレに中途半端に記載されても要領を得ません。

DBに接続した状態で、DB1とDB2を切り換えたいのでしょうか?
だとすれば、SQL文のテーブル名の前にDB名を記載して下さい。

それが嫌なら、Yamさん・ugayaさんが指摘されている通り、接続文字列の
Initial Catalogのデータベース名を都度変えれば済む話です。
(よ〜くレスを読みましょう。)

別の手段として、複数DB分のコネクションをはって、DBに対するSQLを
プログラム上で判断して、DB1に渡すなりDB2に渡すなりすればよいかと。
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2007-11-14 18:38
うろ覚えですが。。。
SELECT * FROM [DB名].[dbo].[テーブル]
のような書き方ができたような気がします。

クエリアナライザーでは動作しますので、一度試してみてください。
1

スキルアップ/キャリアアップ(JOB@IT)