- ベストアンサー
ストアドの書き方?
Aテーブルに同じフィールドを持ったcsvをd, e, f, g と4つのフィールドを比べて 1つでも違っていたら、insertするというSQLをつくりたいのですが、 これは、ストアドになるのでしょうか? データはだいたい5万件くらいあります。 サーバーはSQLServerになります。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ストアドになります。 1.d,e,f,gのフィールドをプライマリキーに設定します。 2.insertする 3.@@erroroでエラー番号持ってきてプライマリキー違反だったら無視して続行。そのinsertが成功だったら続行。それ以外のエラーだったらエラー処理 プライマリキーに設定しないのであれば、まぁ普通にselectしてデータを取得することができなかったらinsertって方法をとるしかないですね。
その他の回答 (2)
- 7marine
- ベストアンサー率36% (59/160)
回答No.3
一回だけのバッチ作業ですか? であれば 仮テーブルを作成 csvを全部取り込む 連結クエリのdelete文でまったく同じレコードを消す 残ったのをまとめてinsert 何度も行う必要があるならお薦めできない方法ですが 取り込み対象を確認できるのでらくだと思います
質問者
お礼
ありがとうございます。 アドバイスどおり、Insert文で頑張ってみたいと思います。
- yamada_28
- ベストアンサー率43% (21/48)
回答No.2
追記で。 この処理をストアドにする意味があるかっていったらあんまりないでしょうね...
質問者
お礼
ありがとうございました。
補足
ありがとうございます。 >プライマリキーに設定しないのであれば、まぁ普通に>selectしてデータを取得することができなかったら>insertって方法をとるしかないですね。 あまり、イメージがわかないのですが、これは具体的にはどんな感じになるでしょうか? 厚かましいですが、宜しくお願いします。