
いつもお世話になっております。
VB.netでwindowsアプリケーションの作成しているところです。
SQLサーバーのテーブルを参照していますが、テーブルの結合は同じデータベース内にないと結合できないのでしょうか?
'SQL接続処理
Dim strConn As String = "Password='';User ID=sa;Initial Catalog=test;Data Source=server1"
と、testというデータベースがありその中に幾つかテーブルがあります。
このtestデータベースにないテーブルが必要になり、aaaデータベース内の
テーブルを結合しようとしたのですが、出来ません。
Catalog=test,aaaとやってみたり、SELECT * FROM tbl1,aaa.tbl2などとしてみましたが、遠いようです。
SQLのクエリを使って、テーブルの追加をすると同じデータベース内のテーブルしか出てこないので、出来ないのかなと思っていますがどうでしょうか?
わかる方がいましたら教えてください。
No.1ベストアンサー
- 回答日時:
select * from tbl1,[aaa].[dbo].[tbl2]
のように、[データベース名].[オーナー].[テーブル名]の様式で指定すれば、良いかと思います。
(当然、権限の問題がない前提ですが・・)
この回答への補足
015_dogiです。
>同じデータベース内・・・
では有りません。ごめんなさい、間違えました。
データベースも私が作ったものです。
同じサーバー内と書こうとしたものです。
データベースも特に設定はしていません。
宜しくお願いします。
k_o_r_o_c_h_a_n さんご回答ありがとうございます。
k_o_r_o_c_h_a_n さんの通りにやったのですが、
"System.DataSqlclient.SqlException"のハンドルされていない例外がsystem.data.dllで発生しました。
と出ます。
>(当然、権限の問題がない前提ですが・・)
同じデータベース内でも権限が違うのですか?
とりあえず両方とも私がインポートしたもので、特に変更はしていないのですが・・・
新たにSQL接続する必要ありますか?
Dim strConn As String = "Password='';User ID=sa;Initial Catalog=aaa;Data Source=server1"
などのように。
何卒宜しくお願いします。
No.4
- 回答日時:
>エラーで
>"System.DataSqlclient.SqlException"のハンドルされていない例外がsystem.data.dllで発生しました。
というのはもっと詳細に分からないものしょうか?
.netについては、詳しくないのですが・・
SQL文にエラーがあるのだと推測できるので、まずは、server1でSQL文が処理できるか
処理できないかを確認した方が良いでしょう。
SQLserverのクライアントツール(何でも良い)で、SQL文を処理してみてください。
k_o_r_o_c_h_a_n色々ありがとうございました。
エンタープライズマネージャーのクエリでソースを作り
出来ましたのでご連絡いたします。
ご連絡が遅くなりましてすいません。
No.3
- 回答日時:
>select * from [データベース].[オーナ].[テーブル]と書き
>whereの部分も[データベース].[オーナ].[テーブル].[列名]で書かないと駄目なのですよね。
「面倒だなぁ」という意味ですよね?
基本的に・・・
列名を正しく表現するとしたら、[データベース].[オーナ].[テーブル].[列名]の表記となります。
ただし、単一のSQL文上で、同じオブジェクトを、複数回別目的で使うことがあるので、
別名なる機能があります。これを利用すると、記述の簡素化ができます。
別名(エリアス)例:
select a.氏名 as オヤジの名前,b.バカ息子の名前
from 家族台帳 a,家族台帳 b
where a.世帯=b.世帯 and a.続柄='オヤジ' and b.続柄='子'
先のSQLだと..
select * from tbl1,[aaa].[dbo].[tbl2] as tbl2
where tbl1.col1=tbl2.col1
のように別名を付与すれば、from以外では、データベースやオーナを意識しないで済みます。
k_o_r_o_c_h_a_n さんご回答ありがとうございました。
なかなか苦戦しております。
エラーで
"System.DataSqlclient.SqlException"のハンドルされていない例外がsystem.data.dllで発生しました。
というのはもっと詳細に分からないものしょうか?
っというのも
'SQL接続処理
Dim strConn As String = "Password='';User ID=sa;Initial Catalog=test;Data Source=server1"
はテスト環境で本番環境はまた違うサーバーです。
Source=server1を変更したのですが上記のエラーが出ました。
サーバー接続は出来ていると思います。
データベース名、テーブルも同じレイアウトになっているはずです。
パスワードなども設定していません。
サーバー名を変えるだけでは駄目なのでしょうか?
本件のテーブルの結合時のエラーも同じところででます。
エラーの出るところは下記の部分の
adapter = New SqlClient.SqlDataAdapter(strSQL, strConn)
ds = New DataSet
adapter.fill(ds,"Estimate")
の部分です。
詳細にヒントが出てくれると助かるのですが・・・
何か分かりますでしょうか?
No.2
- 回答日時:
どういう環境でなのか、良く判らないんですが..
SQLserverは、1つサーバに複数のインスタンスを作れます。
各インスタンスは、複数のデータベースを管理できます。
インスタンス内のデータベースを跨ぐような処理も可能ですし、
インスタンスを跨ぐような処理もできます。
単一インスタンス内のデータベースを跨ぐだけであれば、
[データベース].[オーナ].[テーブル]の様式で書くだけで
OKです。
インスタンスを跨ぐ場合、リモートデータベースなどの仕組みを
使わないとダメだと思います。
>>(当然、権限の問題がない前提ですが・・)
>同じデータベース内でも権限が違うのですか?
誰でも、全てのデータを好きに見ることができるようでは、
セキュリティに問題があると思いませんか?
詳しくは、マニュアルを読んでください。
k_o_r_o_c_h_a_nさんありがとうございます。
まだ解決はしていないのですが・・・
select * from [データベース].[オーナ].[テーブル]と書き
whereの部分も[データベース].[オーナ].[テーブル].[列名]で書かないと駄目なのですよね。
すいません教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
このQ&Aを見た人はこんなQ&Aも見ています
-
2台のサーバー間でのテーブル結合方法
SQL Server
-
あるDBから別のDBのテーブルをselectしたい
MySQL
-
別サーバーのDB同士を結合することは可能でしょうか?
MySQL
-
-
4
SQLServer2005上の別DBからテーブルを読みたい
SQL Server
-
5
異なるサーバのDBデータ同士を結合するには?
Oracle
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
異なるインスタンスにあるDBの結合
SQL Server
-
8
SUBSTRING 関数に渡した長さのパラメータが無効です。
SQL Server
-
9
EXCEL2003 VBAで2つのDBに接続してSQLを実行し、異なる
Visual Basic(VBA)
-
10
SQLで同じDBに対し2つのコネクションをもてる?
SQL Server
-
11
INSERT文でフィールドの1つだけを他のテーブルから取ってきた値を入れたい
その他(データベース)
-
12
FORMが開いているかどうかの確認方法
Visual Basic(VBA)
-
13
異なるDB間でのJOINやVIEWについて
その他(データベース)
-
14
データがあれば○○なければのSQL
その他(プログラミング・Web制作)
-
15
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
16
クエリ上でフィールド名が2つあるときの見分け方
Access(アクセス)
-
17
ASP.NetのGridViewで任意の行クリックで選択を行う方法
Microsoft ASP
-
18
【Transact-sql】 execの結果をoutputパラメータに持たせたい
SQL Server
-
19
メッセージボックスを大きくする方法
Visual Basic(VBA)
-
20
SPREAD(GrapeCity)のセルにフォーカスを設定するにはどうしたらいいのでしょうか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Access:クエリのフ...
-
Oracleのsystem表領域について
-
ACCESS アクセスで他のデータ...
-
SQliteの日付検索について
-
データベースを複数作ったほう...
-
Accessで2種類のデータベースを...
-
他のデータベースとのテーブル結合
-
2台のサーバー間でのテーブル...
-
同姓同名検索
-
「テーブルに座って……」という...
-
外部キーだけのテーブル(主キ...
-
一つ前に戻るには…
-
SQL、2つのテーブルで条件一致...
-
会社の飲み会の幹事になり、座...
-
SQLでSUMなどの関数でデータが...
-
SELECT 文の NULL列は?
-
Accessでデータシートに同じデ...
-
件数とデータを同時に取得する...
-
SQL*LoaderでCSVから指定した列...
-
SQLにて指定日付より前、かつ最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
他のデータベースとのテーブル結合
-
2台のサーバー間でのテーブル...
-
Oracleのsystem表領域について
-
Microsoft Access:クエリのフ...
-
SQliteの日付検索について
-
ACCESS アクセスで他のデータ...
-
Accessで2種類のデータベースを...
-
データベースのインポートがで...
-
Visuaal Studio Community 2022...
-
データベースを複数作ったほう...
-
SQL Server 2000 テーブル未使...
-
Accessでテーブルを外だしにす...
-
ACCESS(VBA)について
-
構造が同じ別テーブルInsert In...
-
データベースの登録順序を簡単...
-
バッチファイルを使ったテーブ...
-
コマンドラインオプションにパ...
-
AccessとSqlServerのテーブルリ...
-
Access2003について
-
ADPのテーブルの場所
おすすめ情報