すいません、VB4しかやってないんです、VBAはやったけど(ぼそ) チラシの裏だって立派な書き込み空間なんだからねっ!資源の有効活用なんだからねっ!とか偉そうに言ってるけど、実は色々と書き残したいだけ

だからなに? どうしろと? くるみサイズの脳みそしかないあやしいジャンガリアンベムスターがさすらう贖罪蹂躙(ゴシックペナルティ)

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  632  : 記事  35  : コメント  11683  : トラックバック  143

ニュース


片桐 継 は
こんなやつ

かたぎり つぐ ってよむの

大阪生まれ河内育ちなんだけど
関東に住みついちゃったの
和装着付師だったりするの
エセモノカキやってたりするの
VBが得意だったりするの
SQL文が大好きだったりするの
囲碁修行中だったりするの
ボトゲ好きだったりするの
F#かわいいよF#

正体は会った人だけ知ってるの

空気読まなくてごめんなさいなの


わんくまリンク

C#, VB.NET 掲示板
C# VB.NET掲示板

わんくま同盟
わんくま同盟Blog


WindowsでGo言語
WindowsでGo言語


ネット活動


SNSは疲れました

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

イベント活動

プログラムの活動

あるデータファイルはキーごとに連番を持っていて、この連番は必ず昇順で格納されている。これをそのままのイメージでテーブル情報に格納したい。
そこで、連番付与の条件が必ず保証されていることを証明した上で、テーブルへ保存しなさい。

というお話があって、

「だったら、ファイル読込み順番を保ったままBULKINSERTして、SQLして終わりじゃーん♪」

とやってみる。

読込み順番を保証したままファイルをBULKINSERTする方法はここ
http://blogs.wankuma.com/esten/archive/2007/05/14/76724.aspx

これが出来てると仮定して、c1は読込み順番、c2はキー、c3が連番、とみなしてチェックSQLを作ってみた.。

create table #t1 ( c1 int,c2 int,c3 int);
insert into #t1 values(1,0,1);
insert into #t1 values(2,0,2);
insert into #t1 values(3,1,1);
insert into #t1 values(4,0,3);
insert into #t1 values(5,1,2);
insert into #t1 values(6,0,4);
insert into #t1 values(7,1,3);
insert into #t1 values(8,1,4);
insert into #t1 values(9,0,5);
go
select c1,c2,row_number() OVER 
    (PARTITION BY c2 ORDER BY c1)
 from #t1
EXCEPT
select c1,c2,c3 
 from #t1 

レコードが返ったらNGだよ~ん♪ってことで。
サンプルは正しい並びなのでレコードは返らないけど、どこかちょぴっと数字をいじると「ちゃんと連番にせんかい、ずれとるやんけ」と合わなくなった列が返ります

投稿日時 : 2007年12月26日 1:22

コメント

# re: 厳密な順番を保証させるSQL 2007/12/28 21:56 けろ
このチェック手法は、私も良く使う。
OVER の書式は、やっぱり特殊だから、いつも忘れちゃうんだよね orz
次回、使うとき、書式確認用で参考にさせてもらうわw

Post Feedback

タイトル
名前
Url:
コメント