jamshid6のプロフィール

@jamshid6 jamshid6
ありがとう数792
質問数0
回答数1,251
ベストアンサー数
591
ベストアンサー率
88%
お礼率
0%

SQL Serverを実務で使い倒しています。 それにしても、同じ質問に5回もつきあって、回答数5、ベストアンサー1ではベストアンサー率なんて上がりませんね。

  • 登録日2008/06/30
  • 2つのテーブルに差異があるデータを抽出する方法

    このようなことが実現できるのかというご相談です。 ご存知の方がいらっしゃいましたらご教授ください。 環境はSQL Server2008です。 2つのテーブルがあります。 1度のSQLでその2つを比較し、以下の条件のデータを抽出することは可能なものでしょうか? (1)テーブルAに存在するが、テーブルBにはない (2)テーブルBに存在するが、テーブルAにはない (3)テーブルAとBの両方に存在するが、項目のいずれかが異なる。 なお、テーブルBには、テーブルAには存在しない項目がありますが、 その項目は比較対象外です。 お知恵を拝借できましたら、とてもありがたいです。 よろしくお願いいたします。 ■テーブルA Key Komoku1 Komoku2 001 1000 2000 002 2000 3000 005 3000 4000 006 4000 5000 ■テーブルB Key Komoku1 Komoku2 Komoku3 001 1000 2000 X1 003 2000 3000 X2 005 3000 5000 X3 006 4000 5000 X4 ■結果 Key Komoku1 Komoku2 002 2000 3000 003 2000 3000 005 3000 4000 (あるいは 005 3000 5000) ※005はテーブルA,B両方には存在するが、koumoku2の値が違う例です。 その場合、どちらのテーブルの値を出力しても構いませんし、あるいは両方を 出力しても構いません。 よろしくお願いいたします。

    • oohaya
    • 回答数1
  • OPENROWSET関数を使用したインサート方法

    現在「vs.net2010 C#」を使用してプログラムを作成しております。 連携するデータベースに「SQL server2010 R2」を使用し、以下の構成のエーブルへデータをインサートしたいと思っているのですが、2点どうしても解決出来ない問題が発生してしまいどうにも原因が分からない状態です。 初心者の為、初歩的な事があまり分かっておらず、大変恐縮ですが、対応方法をご存じの方がいらっしゃいましたら、ご教授頂ければと思います。 ■テーブル構成 テーブル名:test ・ID UNIQUEIDENTIFIER PRIMARY KEY ・FILE_NAME1 VARCHAR(20) ・FILE_DATA1 VABINARY(MAX) ・FILE_NAME1 VARCHAR(20) ・FILE_DATA1 VABINARY(MAX) ■発生している問題 (1)webアプリの画面からファイルを参照し、そのファイルパスを取得し、インサートの際に利用しているのですが、パスの間にスペースが入っている為か下記のようなエラーが発生してしまいます。 ・実行SQL insert into test (ID ,FILE_NAME1 ,FILE_DATA1 ,FILE_NAME1 ,FILE_DATA1) select NEWID() ,null ,null ,'Book1.xls' ,x.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book1.xls', SINGLE_BLOB)AS x 「ファイル"ファイルパス"を開けなかったので、一括読み込みできません。オペレーティングシステムエラーコード 5(アクセスが拒否されました)」 C:直下等にファイルを移し実行すると正常にインサート出来るので、パスのスペースが原因だと考えているのですが、解決策を調べてもよくわかりませんでした・・・ (2)インサートの際に「VABINARY」列が複数ある時の記述方法について 1 insert into test 2 (ID 3 ,FILE_NAME1 4 ,FILE_DATA1 5 ,FILE_NAME1 6 ,FILE_DATA1) 7 select 8 NEWID() 9 'Book1.xls' 10 ,x.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book1.xls', SINGLE_BLOB)AS x 11 ,'Book2.xls' ,12 y.* from OPENROWSET(BULK N'C:\Documents and Settings\USER\デスクトップ\Book2.xls', SINGLE_BLOB)AS y 上記のように「VABINARY」列が複数ある時に、上の9.10行目は問題ないようなのですが、以下の11.12行目が構文エラーとなってしまいす。 本当は12行目以降にも、新しく列を作成し、インサートしたいと思っておりますが、10行目以降は 初歩的な記述方法の問題かとは思うのですが、自身の理解不足も相まって調べても解決できない状態です。 どなたかお力をお貸し頂けませんでしょうか? 以上、宜しくお願い致します。

  • LOCK_ESCALATIONオプションの確認方法

    LOCK_ESCALATIONオプションが設定されているか否かが わかるSQLを教えてください。 SQL Server 2008になってから、ロックのエスカレーションの無効化を テーブル単位に行えるようになった事を知りました。 具体的には以下のSQLにてできるようです。 ALTER TABLE TBL01 SET ( LOCK_ESCALATION = DISABLE ) セットの方法はわかったのですが、「今どうなっているか」を知る方法は ないものでしょうか? どなたかご存知の方いらっしゃいましたら教えてください。

    • baunce
    • 回答数1
  • UPDATEの更新前の値を取得したい

    SQLServer2008を使用して、 UPDATEの更新前と更新後の差分を出そうとしているのですが、 更新前の値が取れません。 更新後の値はOUTPUT句を使用してINSERTED.XXXでとっています。 更新前の値もOUTPUT句を使用してDELETED.XXXでとれるのかと思い試したら INSERTED.XXXと同じ値(更新後の値)が取れてしまいました。 selectをしずに、更新前の値を取得する方法はありますでしょうか? ご存知の方ご教授お願いいたします。

  • SQLサーバ2008でのクエリについて

    初心者ですが、よろしくお願いします。 Access 同様のクエリ操作が出来るのでしょうか? 例)グループ化、抽出設定、関数の使用、更新・テーブルクエリ 等

    • kryc
    • 回答数2