• ベストアンサー

ストアドの書き方?

Aテーブルに同じフィールドを持ったcsvをd, e, f, g と4つのフィールドを比べて 1つでも違っていたら、insertするというSQLをつくりたいのですが、 これは、ストアドになるのでしょうか? データはだいたい5万件くらいあります。 サーバーはSQLServerになります。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.1

ストアドになります。 1.d,e,f,gのフィールドをプライマリキーに設定します。 2.insertする 3.@@erroroでエラー番号持ってきてプライマリキー違反だったら無視して続行。そのinsertが成功だったら続行。それ以外のエラーだったらエラー処理 プライマリキーに設定しないのであれば、まぁ普通にselectしてデータを取得することができなかったらinsertって方法をとるしかないですね。

riseshinejp
質問者

補足

ありがとうございます。 >プライマリキーに設定しないのであれば、まぁ普通に>selectしてデータを取得することができなかったら>insertって方法をとるしかないですね。 あまり、イメージがわかないのですが、これは具体的にはどんな感じになるでしょうか? 厚かましいですが、宜しくお願いします。

その他の回答 (2)

  • 7marine
  • ベストアンサー率36% (59/160)
回答No.3

一回だけのバッチ作業ですか? であれば 仮テーブルを作成 csvを全部取り込む 連結クエリのdelete文でまったく同じレコードを消す 残ったのをまとめてinsert 何度も行う必要があるならお薦めできない方法ですが 取り込み対象を確認できるのでらくだと思います

riseshinejp
質問者

お礼

ありがとうございます。 アドバイスどおり、Insert文で頑張ってみたいと思います。

  • yamada_28
  • ベストアンサー率43% (21/48)
回答No.2

追記で。 この処理をストアドにする意味があるかっていったらあんまりないでしょうね...

riseshinejp
質問者

お礼

ありがとうございました。

関連するQ&A