Microsoft SQL Server 総合スレ 6 at DB
[2ch|▼Menu]
1:NAME IS NULL
08/04/05 15:31:54
Microsoft SQL Server 総合スレ 6

2:NAME IS NULL
08/04/05 15:33:19
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

・Microsoft 公式サイト
URLリンク(www.microsoft.com)


・過去スレ

Microsoft SQL Server 総合スレ 5
スレリンク(db板)l50

Microsoft SQL Server 総合スレ 4
スレリンク(db板)l50

Microsoft SQL Server 総合スレ3【MS SQL】
スレリンク(db板)l50

MS SQL Server 総合スレ2
スレリンク(db板)l50

3:NAME IS NULL
08/04/07 07:59:59 7wzqdvA4
ではさっそく

SANに2台サーバが接続されています
片方のサーバのSQLSERVFRでオープンしているデータファイルをもう片方のサーバのSQLSERVERから読み取り専用で開く事は可能ですか?
バージョンは2005です

4:NAME IS NULL
08/04/08 02:32:07
できない気がする。

5:NAME IS NULL
08/04/08 02:34:12
MSDE 2000、Books Online で FETCH を見ると RELATIVE に指定する変数は
smallint でも良いことになっているけど、変数の値が負だと @@FETCH_STATUS が -1 になった。
型を int に変えたら直った。
これで4時間悩んだ。MS頃す

6:NAME IS NULL
08/04/08 15:45:11
>>3
無理。

7:NAME IS NULL
08/04/08 21:13:09
データベースAの全テーブルとデータベースBの全テーブルのコンペアってどうやります?
やっぱり全部テキストに落としてから比較?

8:NAME IS NULL
08/04/11 09:46:27 l77RsaBa
SQLについて教えてください。

とあるNVARCHAR列に半角が入っているものを検索したいのですが
列 like '%A%' OR 列 like '%a%' || ・・・・・・みたいに
一文字ずつ半角コードと総当りさせるORを書くしかないのでしょうか?
なにかいい方法はありますでしょうか?



9:NAME IS NULL
08/04/11 10:53:30 l77RsaBa
事故解決しました。
Access使って

SELECT * FROM ××マスタ
WHERE StrComp(列名,StrConv(列名,4),0) != 0


10:NAME IS NULL
08/04/11 16:06:37
SQLについて教えてください
DATATIME型として入っている、部分を取得して
GROUP BYでまとめたく以下のようなSQLを作成しました。

SELECT substring(convert(char,U_DATE,111),1,10) as U_DATE,count(*)
FROM tb_ticket
GROUP BY U_DATE

U_DATEが同一のものがまとまってほしいのですが、全レコードが出力されてしまい
countがすべて1となってしまうのです。
datatimeをGROUP BYするにはどうしたらよいのでしょうか

11:NAME IS NULL
08/04/11 18:40:38
日付のyyyy/mm/ddでカウントしたいなら
GROUP BY の条件も GROUP BY substring(convert(char,U_DATE,111),1,10)

12:NAME IS NULL
08/04/14 09:57:59
ジョブについて教えてください。

とあるバッチ(hoge.vbs)があります。
これをジョブで起動するのですが。
cscript.exe hoge.vbs

これをhoge.vbsの実行が終わったら1秒空けて(あけなくてもいいかも)
またhoge.vbsを実行したいです。永久に。

このような処理をジョブで可能でしょうか?

よろしくお願いいたします。

13:NAME IS NULL
08/04/14 22:22:05
>>12
SQL Server エージェントをみてみたら1分間隔までは設定できるみたいだけど、1秒というのはできないっぽい。
(まあ、ジョブを60個作って無理やり動かせば可能だけど)
ただ、SQL Serverエージェントで処理する必要があるの?

例えばhoge.vbs内で無限ループさせるとか、hoge.vbsを呼び出すバッチファイルやスクリプトを作成するとか。

あと、1秒空けるのは、sleepを使えばCPU時間を消費しないで待たせることは可能。

最初の起動としては、スケジュールを作成するときに、スケジュールの種類を"SQL Serverエージェント開始時に
自動的に開始"を設定することでできるし、Windowsタスクの場合でも"システム起動時"に設定すれば起動できるよ。

どんな処理かわからないから、漠然としか回答できないけど、こんな感じでいいかな?


14:NAME IS NULL
08/04/14 22:47:09
>>11
ありがとうございます。
抽出したい件数がカウントできました!

15:NAME IS NULL
08/04/15 06:36:41
>>12
pingで1秒waitっぽいことできるでしょ


16:NAME IS NULL
08/04/15 14:28:25
varcharの列でnullだったり空だったりすると抽出条件が面倒なので、
空で統一したら便利なんじゃないかと考えました。

nullを許容のチェックを外して既定値を '' にしたんですが、
運用していく上でなにか不都合があったりするのでしょうか?

17:NAME IS NULL
08/04/15 18:53:02
>>16
ビジネスロジック上nullと空を区別する必要ないならいいんじゃないの?

あと最近うんちがRAIDになってしまう
家でずぼっと出て会社で残りをするような


18:NAME IS NULL
08/04/15 23:39:15
ちょっと質問ですが、今までOracleを使ってたのですが、
少しの間だけ、SQLSERVERを使っているプロジェクトに入ることになりました。
SQLSERVERを使ってる人はだいたいクエリーツールは何を使っているのでしょうか?
クエリーアナライザーを使うのが多いのでしょうか?
職場だとフリーやシェアのソフトを入れても特に問題は無いです。

19:NAME IS NULL
08/04/16 00:13:38
2000ならクエリアナライザ使ってるだろうな
あとVisualStudio

20:NAME IS NULL
08/04/16 00:15:41
意外とaccess

21:NAME IS NULL
08/04/16 00:26:10
Access2003以下のMSSQL2005触らせなさは異常

22:NAME IS NULL
08/04/16 01:15:36
>18
2005ならManagementStudio、2000ならクエリアナライザがあるが2005のManagementStudioを使った方がいろいろ便利だと思う。
Oracleと違って標準で用意されてるツールで大体十分だと思うよ。

23:16
08/04/16 09:14:29
>>17
サンクス。区別する必要が無いときはそれでやってみます。


24:NAME IS NULL
08/04/17 13:50:03 tnV6pzL3
integration serviceについて教えて下さい。

当方、2003serverとVB6.0を用いて、integration serviceでデータのインポートを呼び出そうとしているのですが、可能でしょうか。
本やネットを調べても、.netやbusiness intelligence development studioの話題しか出てこないのですが……。

25:NAME IS NULL
08/04/17 13:50:46
上げてしまいました、すみません……。

26:NAME IS NULL
08/04/18 10:31:39
悩み中…

SQL Server 2000で、約2億件のデータから特定の条件の約2000万件のデータを削除したい
普通に delete from A where B=C とかではあっさりタイムアウトするので分割削除したい
delete top 1000 from A where B=C みたいなことって出来るんでしょうか?

27:NAME IS NULL
08/04/18 11:38:05 hKVau2G8
で、それを2万回やるの?

28:NAME IS NULL
08/04/18 13:01:03
そうw

29:NAME IS NULL
08/04/18 13:06:21 nmpP6AcP
他の列使って絞り込みながら少しずつ削除とかできないの?

30:NAME IS NULL
08/04/18 13:08:01
>>29
やっぱそれですかねぇ…
それやりかけて嫌になって聞いてみたんですが

31:NAME IS NULL
08/04/18 13:30:57
>26
delete A from A a where exists
(select * from
(select top 1000 * from A) b
where A.key = B.key)
こんな感じ?
レコード数が多いと微妙な気がするけど。
もうちょっと条件入れて少しづつ消した方が確実かなと思う。

32:NAME IS NULL
08/04/18 13:32:14
>>30
SQL Server 2005はDELETEでTOPの指定はできるけど、SQL Server 2000ではできない。

その辺りの方法については、Pass Jのフォーラムとか川端さんのブログで見た記憶があるけど。



33:NAME IS NULL
08/04/18 13:33:34
>>26
bcpを使って条件付で抜き出す。
truncat tableでテーブルクリア。
bcp最小ログでデータをロード。

34:NAME IS NULL
08/04/18 14:53:09
Cumulative update package 7 for SQL Server 2005 Service Pack 2
URLリンク(support.microsoft.com)

Service Pack 3 出すとサポート期間延ばさないと逝けないし
Service Pack としては出す気ないんだろうなぁ・・・。

35:NAME IS NULL
08/04/18 17:11:34
1行ずつ消していけばよい

36:NAME IS NULL
08/04/18 19:14:43
>>24
SSISを実行するSQL Server Agentのジョブを作成して、
sp_start_jobで作成したジョブを実行すればできると思う。


37:NAME IS NULL
08/04/19 01:03:17
>>26
deleteのコストは高い。
論理削除ではどう?

38:NAME IS NULL
08/04/19 01:10:10
2億件のレコード数をいっそう増やすのか

39:NAME IS NULL
08/04/19 09:23:22
インデックスを付けるとどうかな?
10分の1まで絞れるなら少しは効果が出そうだけど。

40:sage
08/04/23 17:17:00 YvQLSJqa

VB2005
SQL Server 2005 Express Edition
サーバOS:Windows 2000 Server
クライアントOS:Windows XP

ADOでSQLサーバtestに

' 接続文字列を生成する
Dim stConnectionString As String = String.Empty
stConnectionString &= "Data Source = test;"
stConnectionString &= "Initial Catalog = testdb;"
stConnectionString &= "Integrated Security = SSPI;"

' SqlConnection の新しいインスタンスを生成する (接続文字列を指定)
Dim hConnection As New System.Data.SqlClient.SqlConnection(stConnectionString)

' データベース接続を開く
hConnection.Open()

' 接続に成功した旨を表示する
MessageBox.Show("Microsoft SQL Server に接続されました")

' データベース接続を閉じる (正しくは オブジェクトの破棄を保証する を参照)
hConnection.Close()
hConnection.Dispose()

として接続しようとすると

サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときに
このエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることが
エラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server
への接続を開けませんでした)

というエラーメッセージが出て
hConnection.Open()
のところで中断します。


サーバのリモート接続は
ローカル接続およびリモート接続−TCP/IPおよび名前月パイプを使用する
に設定しているのですが…何がいけないのでしょうか?


41:NAME IS NULL
08/04/23 17:44:41
>>40
express edtionの場合デフォルトのサーバー名がインスタンス名付きになってるから
それが足りないのでは。
Data Source=test\sqlexpress
Data Source=.\sqlexpress


42:40
08/04/23 17:59:30
Data Source=test\sqlexpress
にしたところ、

このログインで要求されたデータベース "testdb" を開けません。ログインに失敗しました。
ユーザー '(ドメイン名)\(ユーザー名)' はログインできませんでした。

というエラーメッセージに変わりました。
少しだけ進展したような気がしますがどう対応していいかわかりません。
ご存知の方いましたら教えてください。

あと、sage間違いすいません。

43:NAME IS NULL
08/04/23 18:46:30
>>42
DBにアクセスするプログラムをVSのウイザードで自動生成して出来たものを調べるのが近道。
接続文字列は*.exe.configにあるはず。

44:42
08/04/23 19:04:10
すいません、自動生成の仕方を教えてください;

45:NAME IS NULL
08/04/23 21:07:51
>>44
ネットワークでつかえるように設定しなきゃダメよ。
localならいけるんでしょ?

46:NAME IS NULL
08/04/23 21:32:43
暇だから、SQL Server 2008 新機能紹介 全国弾丸ツアー 2008 とやらに行こうと
思ったら、既に東京会場は満員だった orz

とりあえず追加開催に期待するか。

47:NAME IS NULL
08/04/24 09:28:38 TQpLkKjm
>>40 >>42
データベースにユーザ追加してないんじゃないの。
Windows 認証でも Windows Server にユーザ追加しているからって
データベースにユーザ追加していなかったら接続できない。

使い始めの頃それでずいぶん悩んじゃったなぁ。

48:NAME IS NULL
08/04/24 14:10:18
テーブルにインデックスを貼ったらSelect文の速度が
早くなったんですが、一部のSQLで逆に遅くなる現象がでました。
インデックスを貼って遅くなる原因は何が考えられるのでしょうか?

49:44
08/04/24 16:28:55
>>45>>47
指摘された点を見直したら出来ました!
ありがとうございました。

50:NAME IS NULL
08/04/24 18:13:59
>48
一部のSQLってのがUPDATEとかINSERTなら
インデックスも更新してるから遅くなることがあるかも

51:NAME IS NULL
08/04/24 19:44:51
>>48
INDEXが効果を発揮するのって、最低でも100件以上の行があるイメージがある。

INDEXを付けたせいで遅くなる操作もいくつかあるよ。

52:NAME IS NULL
08/04/24 23:39:52
>48
実行プランがどうなってるかチェックしたら?
使ってほしいインデックスと違うインデックスが使われたりとかね。

53:NAME IS NULL
08/04/24 23:58:15
取得件数が全レコード数の半分とかなら
フルスキャンの方が速い

54:NAME IS NULL
08/04/25 01:22:54
今月から仕事でSQLserverさわってるんですが
それ関連の資格を取るなら何がおすすめですか?

55:NAME IS NULL
08/04/25 07:03:35
>>54
普通免許


56:NAME IS NULL
08/04/25 11:46:32
トラブル時に客先へ急行するためですねw

57:NAME IS NULL
08/04/25 12:40:03
的確だなw

58:NAME IS NULL
08/04/26 13:04:20 2E/8ALfP
サーバ側
OS:Windows Vista Home Premium
DB:SQL Server 2005 Express Edition

クライアント側
OS:Windows XP Pro


クライアント側からADO接続でVistaのSQL Serverに接続出来ません。
なんか解放する必要があるのでしょうか?

サーバー側がXPのときは接続されるけど・・・


なぜ?? ご教示を (m__m)


59:NAME IS NULL
08/04/26 15:21:55
鯖側でADOが使えるならネットワークの設定。
デフォルトはポートが閉じられている。
XPの方は誰かが開けたんだろう。

60:NAME IS NULL
08/04/26 19:36:39 55VyVdYl
SQL Server 2005 Enterprise Edition 180日間 限定評価版のセットアップに関する質問です。

Setup.exeを実行するとログを確認するようポップアップメッセージが表示されセットアップが中断されるのですが、
ログには特にエラーメッセージ等が出力されません。
空きハードディスク容量、必要システムのメモリとOSを確認しましたが条件を満たしていました。
どうすればインストールできるでしょうか?また、他になにか出力されるログ等ないでしょうか?


実行、エラー発生、ログ確認までの操作手順

1.SQLEVAL_JPN.EXEをダウンロード。
2.SQLEVAL_JPN.EXEを実行。解凍先に既存の c:\sql を指定。
3. C:\sql\servers を実行。
4.下記のメッセージがポップアップ表示。
---------------------------
Microsoft SQL Server 2005 セットアップ
---------------------------
SQL Server セットアップで予期しないエラーが発生しました。
詳細については、%ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\LOG にある
セットアップの概要ログ ファイル (Summary.txt) を確認してください。

---------------------------
OK
---------------------------

5. C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Summary.txt に下記のログを出力。

Microsoft SQL Server 2005 9.00.1399.06
==============================
OS Version : Microsoft Windows 2000 Professional Service Pack 4 (Build 2195)
Time : Sat Apr 26 19:23:53 2008

以上、よろしくお願いいたします。

61:NAME IS NULL
08/04/26 20:46:48 Ra21+QYi
Windows 2000/XP Professional にインストールできるのは
Express/Developer だけのはずですが。

62:NAME IS NULL
08/04/26 20:50:51 Ra21+QYi
と思ったが調べてみたら
Windows 2000 Professional Edition SP4 も動作対象に入ってるのな。
間違って記載されてるんじゃないのか、これ

63:NAME IS NULL
08/04/27 06:37:37
WindowsInstallerを最新にしてみるとか。
Enterprise Editionをクライアント系のOSに導入するとライセンス上の制約で
いろいろ出来ないことがあるから、パンフレベルでは動作リストに載ってないことが多い。

64:NAME IS NULL
08/04/27 10:11:52 0RcOeyfW
製品版のシステム用件にはクライアントOSははいってないんだけどね、
なぜか評価版では入ってるんだよね。

65:NAME IS NULL
08/04/27 23:04:09
declare @rc int
select @rc = 10000
exec_next:
delete from t1 where c1 = 'a'
if @@rowcount > 0 goto exec_next
select @rc = 0
ちょっとづつ消すとか


66:NAME IS NULL
08/04/29 06:48:18 hY5+XXEW
SQL鯖2005でイースターエッグが発見されたようです。
ビルゲイツ→ビ・泣Qイツ

URLリンク(www.atmarkit.co.jp)


67:NAME IS NULL
08/04/29 12:01:10
>>66
文字化けした場所は違うけど再現した
9.0.3159


68:NAME IS NULL
08/04/29 12:38:18
マジで?

連休明けに会社のマシンで試してみよう。

69:NAME IS NULL
08/04/29 13:51:49
>66
text型をレプリケーションすると
4000バイトごとに2バイト文字が境界に来ると半分\0に置き換わる現象を思い出した。

70:NAME IS NULL
08/05/02 21:18:36
初心者ですがSQL serverはXPにインストールできますか?

71:NAME IS NULL
08/05/02 21:32:00
無料のなら出来る

72:NAME IS NULL
08/05/02 21:51:22
永遠無料版?それとも試用版かな?
レスサンクスです

73:NAME IS NULL
08/05/02 22:16:18
システム用件ぐらい自分で確認しなよ。
URLリンク(www.microsoft.com)

XP って言ったって、HOME と Professional (etc...) じゃ違うんだし。

74:NAME IS NULL
08/05/03 04:09:36
HOMEにインストールできなかったのか

75:NAME IS NULL
08/05/03 12:03:10
Express Edition ならできるだろ?

それ以外の Edition を HOME にインストールしたがる奴はかなり珍しいと思うが。

76:NAME IS NULL
08/05/03 18:01:15
EEなんかで満足できるかよ

77:NAME IS NULL
08/05/03 18:15:07
さすがにその餌じゃつれないと思うな。

78:NAME IS NULL
08/05/06 18:08:34
the FILESTREAM Attributeについての情報は?(日本語で)

79:NAME IS NULL
08/05/09 11:52:45 pp+XZC4e
ム板とどっちで聞こうか迷ったんですけど・・・

VB6+ADO2.8って、データベースミラーリングのフェールオーバーってサポートしていますか?
SQLServerにデータベースミラーリングを設定して、↓の接続文字列で接続してみたのですが、
切り替わりませんでした

Provider=SQLOLEDB;Data Source=sql-principa;Failover Partner=sql-mirror;Initial Catalog=mirror_test;User ID=sa;Password=test;


80:NAME IS NULL
08/05/09 13:02:22
>>79
ProviderとしてSQL Native Client(SQLNCLI)を指定すれば大丈夫なはず。

あと注意点としてConnectionTimeoutとCommandTimeoutがデフォルトのままだと
フェールオーバーする前にタイムアウトしたりする。


81:ビ・泣Qイツ
08/05/09 21:05:07
>>66
はァ?
何か問題でもあるのか?

俺は半角文字さえちゃんと扱えれば何も困らんよ


82:NAME IS NULL
08/05/09 21:30:24 qZP+UMRS
>>81
ジャアハンカクデカキコメヨ?


83:ビ・泣Qイツ
08/05/10 01:28:19
マイクロソフト製品は勘定系でSQL鯖を使ってしまうような
命知らずな日本人デバッガー(奴隷)により支えられています。

84:NAME IS NULL
08/05/11 00:43:04 LC/4+jXW
質問です。
今、SQLSERVER2005の入門書を読んで、VBでデータベースを扱う簡単なアプリを
試作しています。スタンドアローン環境です。
一つのデータベースに複数のテーブルを作ったのですが、これらはファイルとしては
どこに保存されているのでしょうか?
将来別のPCに移植する場合、アプリだけでなくこのDBファイルも移動したいのですが、
実体がどこにあるのかわからず不安です。
お願いします。

85:NAME IS NULL
08/05/11 01:07:17
c:\program files\microsoft\sql server\..\data

こんなかんじだった



86:79
08/05/11 10:57:20
>>80
うまく動きました。
どうもありがとうございました。

87:NAME IS NULL
08/05/11 10:57:26
>>84
> 一つのデータベースに複数のテーブルを作ったのですが、これらはファイルとしては
> どこに保存されているのでしょうか?

SSMS (SQL Server Management Studio) 使ってるなら、データベースのプロパティの
どっかで見れたと思う。

SSMS 使ってないなら、

select * from sys.master_files

とか

select * sys.database_files

で見れるかも。(手元に実機がないので試せない。)

参考: URLリンク(msdn.microsoft.com)
   URLリンク(msdn.microsoft.com)

あとデータファイル移動するなら、アタッチ/デタッチについて調べておくと幸せになれ
るかも。

参考: URLリンク(msdn.microsoft.com)

88:NAME IS NULL
08/05/11 12:05:24
>>85>>87
ありがとうございました。
とっても役にたちます!

89:NAME IS NULL
08/05/12 18:27:03
>>66-67
MSSQL2000 に付いてきたクエリアナライザで実行したら問題なかった。
Management Studio の不具合な気がする


90:NAME IS NULL
08/05/13 16:56:43 esOdpdnX
asp.net で表示させても問題ないから
Management Studio のバグやね。

91:NAME IS NULL
08/05/13 18:44:55
Management Studioの日本語対応は糞すぎ

92:NAME IS NULL
08/05/15 16:58:56 DjfxOw0v
今動いているSQLServer2005のCAL数を調べるには
どこを見ればいいですか?
CDROMメディアしかないので箱や紙ではわかりません。

93:NAME IS NULL
08/05/16 01:55:02 fed44/a3
Reporting Servicesの構成ツールで名前付インスタンスの場合、
仮想ディレクトリを、[ホスト名$別名]で作成できません。
どうしたらいいでしょうか。。。


94:NAME IS NULL
08/05/18 00:26:11 rZA4K5Y5
2000同士でリンクサーバしてるんですけど
リンク先のテーブルにロック掛けようとしたら
「リモート データ ソースのインデックスまたはロッキング ヒントを指定できません。」
なんてエラーが出ます
ロッキングヒントを指定できません・・・・
と言うことは、リンクサーバ経由でのテーブルロック・・・どころかロック自体無理と言うことですか?

トランザクションの中に入れちゃってるから他のパスでロックするわけに行かないし・・・
めんどくさいトランザクションのかけ方をやっと見つけ出したのに

95:NAME IS NULL
08/05/18 17:56:57 0NqsCSCu
分散トランザクションなんて
マイクロソフトに作れるわけないじゃん。

96:NAME IS NULL
08/05/21 17:18:18
Oracleで日付型のデータを文字列yyyymmddで取り出したい場合
select to_char(dt, 'yyyymmdd') from tt;

などとしますがSQL Serverの場合はどのようにしたらよいでしょうか?


97:NAME IS NULL
08/05/21 20:02:11
>>96
CONVERT

98:NAME IS NULL
08/05/21 21:58:42
しかしこの CONVERT のスタイルを数値で指定すると言う前近代的な仕様は
何とかならんもんかな。

せめて Excel 互換にするとかしろよ。


99:NAME IS NULL
08/05/21 22:16:24
教えてください
javaプログラムからインサート文でデータを追加しているんですけど
追加したデータがテーブルの一番最後の行じゃなと思っていた動きができません
今のところ偶然そうなってるので問題なく気にしてなかったんですけど
というか、最後に追加されものだと疑問を抱かなかったんですけど
今日カタカナの前にアルファベットかなにかをいれると
カタカナの行の前に挿入されました
どの列のせいか分かりませんが
なにか挿入される優先順位があるのでしょうか?

100:NAME IS NULL
08/05/21 22:37:34
>>99
やべー

101:NAME IS NULL
08/05/21 23:18:32
>Excel 互換
ここ、笑っていいんだよね。

102:NAME IS NULL
08/05/21 23:20:07
>>99
INSERTによる行の順番は忘れろ。
欲しい行の順番は ORDER BY 等でなんとかするのがSQL、
挿入の順番などを考えていたら、運用でつまずく。

103:NAME IS NULL
08/05/22 00:16:21
>>102
マジですか?
ORDER BYっていうのはjavaでも使えるんですか?
そのままSQL文をjavaプログラムに書いても使えないですよね、スレ違いすみません

詳しく説明させて下さい
今オークションチックなものを作っていて
決まりははいんですけど、ID列&PS列は全部バーチャルで半角英数で登録しています
他に手動でインクリメントしていくnamber列があります
インサート時テーブルの行数を取得して、行数+1をnamber列に入れるといったものです

他に入札金額を入れるmoney列

それとインサートした時間をString型で入れる列があります
(でもこの時間はちょっと変更する可能性があります)

どの列が利いているのか分かりませんが
money列が一番金額の高い人が最後の行になるようにして入札テーブルは問題なく動いてます

でも今日他の会員登録テーブルにカタカナを入て
その後他の会員をインサートしたら、最後から2行目に挿入されました
それでインサート文は最後の行に挿入されるんじゃないことに初めて気付かされました

今まで不具合なく動いていたオークションテーブルにも
不具合が生じるじゃないかと心配になって質問しました
数字が大きい順とか何か単純な決まりはないのでしょうか?

104:NAME IS NULL
08/05/22 00:23:55
>>103
SQLとかの前にDBっていうものを勉強したほうがいい。
ファイルじゃないんだから順序なんて存在しない。


105:NAME IS NULL
08/05/22 00:28:14
>>103
ついでに言うなら、あなたの懸念している通り、今うまく動いているのはただ単なる偶然です。錯覚です。
不具合はおそらく出ます。心配する暇はないです。
すぐに改修したほうがいい。仕事でしてるのならね。
順序つけるのは>>102さんの言うとおりORDER BY を使えばいい。
多分それで全てが解決はできないけどね。


106:NAME IS NULL
08/05/22 00:52:32
>>101
>> Excel 互換
> ここ、笑っていいんだよね。

実際 Excel は無茶苦茶高機能だから、完全互換は無理だと思うが
'YYYY/MM/DD' 関連ぐらいは、サポートしてくれ。

'YYYY/MM/DD' なら、まだなんとなくわかるけど、111 だとヘルプ
見ないとさっぱりわからん。

>>103
> 他に手動でインクリメントしていくnamber列があります
> インサート時テーブルの行数を取得して、行数+1をnamber列に入れるといったものです

DB なに使ってるのか知らんけど、たいがいの DB に連番を入れる機能があるからそれ使っ
たほうがいい。その列を何に使ってるのかわからんけど、複数人がほぼ同時に入札したら
同じ番号がつくかもしれないよ。

>>104
> SQLとかの前にDBっていうものを勉強したほうがいい。

激しく同意。

107:NAME IS NULL
08/05/22 00:57:17
まーねー、「INSERT順でデータがあるじゃん」という考え方は分かるんだけどね〜

108:NAME IS NULL
08/05/22 01:02:42
仕事じゃないことを祈る

109:NAME IS NULL
08/05/22 01:06:46
その時わたしは気づいたのです。
この列名が、業務のPRIMARY KEYであることに…

第1部・完

110:NAME IS NULL
08/05/22 01:25:14
いくら待っても第二部は来ませんでした。 来ませんでした。

111:NAME IS NULL
08/05/22 02:16:08
>>105
このレベルだと外注した方がマシだろ

それと、突っ込み所満載すぎてスルーされてるがnamberってなんだよ


112:NAME IS NULL
08/05/22 07:52:25
103
皆さん詳しく教えていただきありがとうございました
今学校でjavaとweb3構築の勉強をしていて課題でホームページを一つ提出するのですが
そうだったんですが、偶然だったんですね
かなり落ちこみますた、勉強しますね
でも皆も妖しげなホームページなので、いや止めたほうがいいですね
提出して動かなかったら嫌ですもんね

113:NAME IS NULL
08/05/22 08:58:46
お前、その課題は本当にDB必要なのか?w

114:NAME IS NULL
08/05/22 10:21:08
javaでsqlserverってのもねー
mysqlとかじゃないの?

115:NAME IS NULL
08/05/22 10:47:40
行の順番について上にあったけど、
DB作る上で列の順番はしっかり考えておいた方がいい。

一度作ってからどんどん項目を増やしていくと、
関係のある列項目が飛び飛びだったり、まぎらわしい列項目ばかりが並ぶことになる。

たぶん「正規化」で教わることだと思うけど、
今現在そういうシステムに直面して、嫌になってきた。

116:NAME IS NULL
08/05/22 10:56:22
列の順番なんて後でいくらでも変えられるじゃん

117:NAME IS NULL
08/05/22 11:40:56
仕様書で決まってるから、自分1人では変えられない…

118:NAME IS NULL
08/05/22 16:29:00
久しぶりにSQL Serverをやるんだけど、もうすっかりわすれてる・・

DATENAMEで、mm出すと0埋めの二桁で、dd出すと1桁の時0埋めされない文字が
でてくるのって前からの仕様だっけ?

たとえば1月だと01のようにゼロ埋めされるけど、
1日だと1のようにゼロ埋めされない文字が帰ってくる。

119:NAME IS NULL
08/05/22 17:10:57
103
皆さん、感謝感激雨霰です、マジ涙出そう
order by成功しました
まだテスト用プログラムでしか試してないんですけど
金額が高い順に手動で連番ふってるので使えると思います
今日一日気分悪かったけど、やっと晴れました
中間は変な並びでも、最後の入札履歴だけはちゃんと並んでる状態にできそうです
ありがとうございました

120:NAME IS NULL
08/05/22 17:30:58
>>119
もうちょっとやり方があると思うぞ?

まず、そのテーブルでのユニークな数字は、IDENTITY属性で指定できる
わざわざ行数+1なんて入れてたら同じ数が入らないとも限らない
順序の項目を参照→URLリンク(www.sqlpassj.org)

金額が高い順に連番をふるんじゃなくて、入札(?)テーブルに
金額とユニークな商品IDを登録して、WHERE 商品ID = @商品ID ORDER BY 金額 DESCすれば
金額順に表示される。

基本的には、どのテーブルにもIDENTITY属性のID列、行が挿入されたときのInsertDateTime列、
行が更新されたときのUpdateDateTime列、行が削除されたことを表すIsDelete列を作っておけば
後にいろいろ対応できる。

とマジレスしてみる。



121:NAME IS NULL
08/05/22 17:42:56
>>120
お遊びなんがからマジレスするな

122:NAME IS NULL
08/05/22 21:32:20
>>120
論理削除は色々と意見はありそう。
InsertとUpdateの更新日付をわける意味は?

123:NAME IS NULL
08/05/22 21:40:15
>>122
論理削除は、マスタ関連なんかで参照される可能性があるけど
表示時間が長くなるから一覧には表示したくないとか、
後からわがままな要望がでてくる可能性を考慮。

Updateは同時実行制御なんかに必要で、
Insertは入力補助のために過去何日間に入力されたものの一覧を出せとか、
ある特定日に入力したものだけ一覧で出せとかを考慮して。

124:NAME IS NULL
08/05/22 23:16:27
ああ 楽観的ロックね。


125:NAME IS NULL
08/05/23 00:10:45
バーボン、ロックで。

126:NAME IS NULL
08/05/23 00:13:18
113
121さんの言うとおり仕事でもないのにすみませんでした
120さんもマジレス感謝です、要らない列は省きます
ここの人達は皆親切ですね

127:NAME IS NULL
08/05/23 17:55:44
考えることで自分の知識を整理・強化してるんだよ

128:NAME IS NULL
08/05/23 23:20:17
ストアドプロシジャの中で変数に値を代入するのに 2つの方法があるよね
1. set を使う
2. fromやwhereのない select を使う

俺はいつも 1. で、2. を使う理由が思いつかないんだけど、2. の利点って何かある?

129:NAME IS NULL
08/05/23 23:40:51
↑代入文の右辺に、演算子や関数のほかは定数と@変数しか出てこない場合です

130:NAME IS NULL
08/05/24 02:12:13
>>128
表が変わっても、正しそうな値を拾ってこれる。

131:NAME IS NULL
08/05/24 03:38:36
SQL CLRを利用すれば、そんな問題からすべて解放されるぉ

132:NAME IS NULL
08/05/24 13:13:30
その代わり違う問題をいっぱい抱えそうだけど。

133:NAME IS NULL
08/05/24 16:23:11
なんか不具合とかある?
SQLでもいいんだけど、.NET使えれば使えたで便利だから
ストアドでSQL CLRを使おうと思ってたんだけどさ

134:NAME IS NULL
08/05/24 17:33:40
いや別にチャレンジングゥ〜な君を止める気はさらさらないから。

人柱よろしく。

135:128
08/05/24 18:20:27
>>130 レスサンクス&解説お願いしていいですか?
表が登場しない、set でもできるし select でもできる代入を、
あえて select でやることの利点があれば知りたいです。

136:NAME IS NULL
08/05/24 19:00:26
>>134
こういう保守的な技術者が日本の技術を悪化させてると思う

137:NAME IS NULL
08/05/24 20:01:25
枯れた技術を使うのは基幹システムの基本
新技術をいきがって使うのは社会的に重要でないシステムにしろよ

138:NAME IS NULL
08/05/24 20:17:33
関数でSQL CLR使ってるよ

正規表現をどうしても使いたい場合
ファイルの削除や存在チェックをする場合
WMI APIを使いたい場合

ところでSQL Server2008正式版って今年中にはでそうなの?


139:130
08/05/24 20:39:24
>>135
SQL Serverは触ったことないので、単なる勘です。
Oracleのストアドプロシージャで散々な目にあったので、RDBMSで共通のSQLで表現できればそちらを採用するってだけです。

参考にならなくてごめんなさい。

140:NAME IS NULL
08/05/24 21:06:29
Oracleはなんであんなにバグだらけなんだろう。

141:NAME IS NULL
08/05/24 21:38:05
>>136
MS の言う新技術に何度となく裏切られてるから、導入を躊躇するのは当たり前。

いきがって導入するのは、学習能力のない奴だろ。

安定したら、検討するよ。

142:NAME IS NULL
08/05/25 00:33:47
枯れた技術とかいいながらSQL Serverを使用している137、141は矛盾

なんでISAMとかBtrieveとか使わないの?池沼?

143:NAME IS NULL
08/05/25 00:40:09
>>139
サンクス、了解しますた
さーて、MSDE 2000 でまた遊ぶか

144:NAME IS NULL
08/05/25 00:45:10
>>142
技術者ってのは面倒を避けるために、適当な理由をつけて、問題を回避する傾向が強いからね
んで枯れた技術とか、最新の技術は・・とか理由をつけて言い張ってるだけだから気にすんな

145:NAME IS NULL
08/05/25 00:47:53
でもOracleのANSI SQL対応がバグだらけなのを見ると
枯れるのを待つのはありな気もする。


146:NAME IS NULL
08/05/25 04:04:25
ならば訊こう。枯れたの定義は?

147:NAME IS NULL
08/05/25 04:49:35
枯れた枯れてないの定義なんて、使用する側の自己満足に過ぎないでしょ
枯れる枯れてないに関わらず、どうせ問題が発生したらメーカのせいにして責任は負わないんだから

責任を追う必要がないのに、新しい技術を導入しないのは、単にそれを導入したくないというだけの話
導入したくない理由は? それを理解していないから=技術者曰く「枯れていないから」

148:NAME IS NULL
08/05/25 09:57:13
2chでもう枯れてるよねーという話題になったとき枯れてる。
あれこれバグ報告があるうちはやめたほうがいいね。
でもOracleはバグの回避策を掲示板等へ書き込むことすら
禁止してるからとんでもない糞


149:NAME IS NULL
08/05/25 10:18:00
同業他社製品との比較は別スレでどうぞ。

150:NAME IS NULL
08/05/25 12:50:12
>>142
> なんでISAMとかBtrieveとか使わないの?池沼?

枯れてりゃなんでもいいわけじゃない、必要な機能があることが前提なんだが
そんなこともいちいち説明しないのいけないのか?

まっ、反論したかっただけなんだろうけど。

>>146
枯れたかどうかなんて、自分の経験と周りの評判だよ。>>147 みたいに責任取
らなくて済むなら、そんなの気にせずにばんばん導入するのもありだろうけど。

>>148
サポート費用稼ぎたいんだろうけどな。

サポート費用も高いし、一旦やめてから再度サポート契約しようとすると、
やめた期間の費用+α 払えとか、ほとんどヤ○ザ同然。

151:NAME IS NULL
08/05/25 12:52:03
何この多重問い合わせ

152:NAME IS NULL
08/05/25 16:57:32
>>144
技術者だって仕事でやってんだから金にならん仕事は手間をかけずに片付けたいのは当然だろ。

153:NAME IS NULL
08/05/25 20:32:17 DMMLfmVY
>>138
悪いが、2008って2005と何が違うか
俺に五七五で教えてくれ

154:NAME IS NULL
08/05/26 10:24:31
2008の売りはXML対応と、MS Officeとの親和性だったかな。
ソフトウェア開発環境展で、新バージョンの利点を説明してた。

155:NAME IS NULL
08/05/26 12:08:16
マージ使えるってのは?

156:NAME IS NULL
08/05/26 19:47:52
まじ


157:NAME IS NULL
08/05/26 20:00:19
あとは圧縮バックアップとか

158:NAME IS NULL
08/05/26 22:14:38
今日すげー嫌な汗かいたんだが、XPにSP3適用するとSQL Server 2005の
TCP/IP接続おかしかない?

W2KでテストしてたのをXP SP3に移してみたら、127.0.0.1じゃないと
Windows認証もServer認証も通らない。
SQL Serverインスコし直したら、自分自身からならプライベートIP通る
ようになったけど、他のPCからは通らない。
当然TCP/IPは有効にしたし、Expressなんでポートも1433に固定して、
Firewallも穴開けてます。

なんかすっげー怪しいぜ、というか俺の勘違いでなければ非常にヤバイ。

159:NAME IS NULL
08/05/26 22:26:51
>158
別にそんなことおきてないよ。
SP3だけど普通に繋がってるよ。

160:NAME IS NULL
08/05/28 13:31:10
>>158
Express = 名前つきインスタンスという意味なら、Windows のファイアウォール設定は
sqlservr.exe に対して外部からのアクセスを許可しないと通らないよ。ポートは動的にアサインされるから。
ついでに UDP 1433 もあけないとだめ。SQLBrowser にアクセスして SQL Server が何番ポートで listen してるか
問い合わせるから。
それでも駄目なら netstat -ano してちゃんと listen してるか確認するのが次のステップだな。

161:NAME IS NULL
08/05/28 20:51:15
>>159
えんやこらやってServer認証は通るものの、Windows認証は未だ
通らず。
去年の末頃は同様の構成でつながってたのにわけからん。

ドメイン管理のない環境でWindows認証使うなという神様の言う
とおりか?
ODBCにファイルDSN使ってるシステムが動かんのも偶然であって
ほしい。

>>160
いやいや、当然そのあたりは全部確認済みですよ。
Firewall切っても動かないぐらいです。

162:NAME IS NULL
08/05/28 22:32:50
>>161
HOSTSファイルは?

163:NAME IS NULL
08/05/28 22:46:00
>>128
複数の変数に同時に代入できる


164:NAME IS NULL
08/05/28 23:04:33
>161
Windows認証は試してなかった、後で試してみるよ。

165:NAME IS NULL
08/05/29 00:25:29 On8Unush
最近T-SQLに興味を持ち出したのですが、
帳票出力等のプログラムからSQLでデータを取得する場合、
テーブル値関数使うという判断はいかがなものでしょうか?

割と便利な気がしたのですが、実用した人の経験談とかも聞いてみたいなと。
自分の選択肢だと
1.ストアドでワークテーブルに加工してInsert⇒レポート側でベタSELECT
2.Viewをいくらか作ってそれを元に帳票向けに加工したSQLで取得
3.レポート側のプログラムで複数テーブル参照しまくりの力技。
4.テーブル値関数(最近知った)でそのままSELECT(xxx,xxx,xx) FROM 関数名

ほかにも方法はあると思いますが、少なくともVIEWよりはテーブル値関数のが
管理的に便利な気がして・・・
ただ、障害発生や拡張とか考えたとき、解析・コーディングに負担あったりするとか
いろいろ気になります。

気持ち的にはやってみたい気がするのですが、前例やその他経験者の少なさから
興味だけで終わりそうな予感。。。



166:NAME IS NULL
08/05/29 21:04:25
>>163
あ、明快ですね。気がつかない俺がバカだった、サンクス

167:NAME IS NULL
08/05/31 00:39:24
おまえら弾丸ツアーいく?

168:NAME IS NULL
08/05/31 00:55:34
行くよ〜。

半分は息抜きだけどね。(w

169:NAME IS NULL
08/05/31 09:24:19
このページの内容は役に立ちましたか?

       1 2 3 4 5
非常に低い    非常に高い


170:NAME IS NULL
08/06/01 00:47:25 AcT0qzva
>165
テーブル値関数で実装したが、今のところ特に問題ないよ
やってることは1.ストアドでワークテーブル〜 みたいなもん

ただ、where条件は中に入れないと、データ件数にもよるけど、
パフォーマンスが悪くなってしまう
×select aaa,bbb from t_func(111,222) where ccc=333
○select aaa,bbb from t_func(111,222,333)
それと、Access2003からテーブルリンクできなかったと思う

171:NAME IS NULL
08/06/02 01:20:57
SQLServer2008CPT2月版さわってるんだがManagementStudioでSQL書いたらインテリセンスが利いて驚いたぜ。


172:NAME IS NULL
08/06/02 16:17:24 gBCGUa8J
>>171
T-SQLのデバッグできるようになった?>ManagementStudio
自分は当分インストできねーーー

173:NAME IS NULL
08/06/02 20:52:27
>>172
どういうこと?


174:NAME IS NULL
08/06/03 00:05:48
ブレークポイント設定したり1行ずつ実行したり変数に何が入ってるか確認できたりってことでは

175:NAME IS NULL
08/06/03 01:56:45
ストアド?

176:NAME IS NULL
08/06/03 22:36:01
あと再帰なんかも途中の結果を見たい時がある。

弾丸ツアーで聞いてみようかな。

177:165
08/06/03 23:13:34 5E6/z6Zz
>170
>×select aaa,bbb from t_func(111,222) where ccc=333
>○select aaa,bbb from t_func(111,222,333)

確かに、関数化の意味なさそうですねw
ためしに速度とか試してみようかなぁ・・・
ありがとうございます。

>それと、Access2003からテーブルリンクできなかったと思う
なるほど。。。ちょっと痛いかも・・・

178:NAME IS NULL
08/06/04 01:16:27 U14zGNqi
JavaからPreparedStatementを使用してSQLを実行した時、
バインド変数を使うと使わない時と比べて圧倒的に
処理速度が低下します。(0.1秒→180秒くらいの差が出る)

この現象の原因としては何が考えられるでしょうか?
また、バインド変数の有無で処理速度が変わる所までは
突き止めましたが、これ以上の原因の切り分け方が有れば
教えてもらえないでしょうか。
よろしくお願いします。

179:NAME IS NULL
08/06/04 09:44:41
>>178
そんなに差が出るものかな?特別なケースの特別な現象かもしれないよ。
回答が欲しいなら、JDBC、OS、DBMSの種類とバージョン、
それから検証が出来るくらいのプログラムソースは示すものだ。

180:NAME IS NULL
08/06/04 12:17:26 pUXBCNvj
SQL-Server2005Express + IISの場合って、ライセンス要るの?


181:NAME IS NULL
08/06/04 14:37:53
>>180
CAL関連の話は複雑なので代理店に確認して欲しい。
SQLServer Express自体の接続に制限はないがOSのライセンスに制限される。
IISはOSにバンドルされているのでこれもOSのライセンスに制限される。
Client OSの場合ピアツーピアに限られるので定型的なアプリとしては使用できない。
Server OSの場合、IIS上のアプリが匿名ではなく認証を使用する場合
CALやプロセッサライセンスが必要になる。
Server OSで匿名接続の場合はOSの価格だけで構築可能。

182:NAME IS NULL
08/06/04 14:45:15 pUXBCNvj
>181 サンクス
Server OSで匿名接続の場合はOSの価格だけで構築可能。
です。


183:NAME IS NULL
08/06/06 22:03:02 oUKZsqUS
SP3はまだか?
2005今だにバグだらけで使い物にならないんだけど…

184:NAME IS NULL
08/06/10 23:14:08
>>178
俺は同じ現象の経験あるな。
とりあえずSQL晒せ。

185:NAME IS NULL
08/06/11 00:01:24
>178
むやみにインデックスを付けていてバインド変数を使ったときのクエリに対する実行プランが
使って欲しくないインデックスを使った実行プランになったりという感じかなと思う。
特にバインド変数を使うとクエリが同じだから悪い実行プランが使い回されて何度やっても同じ状態という感じになるかと。
スペースの有無くらいの違いで違うクエリ扱いされて違う実行プランが使われると突然応答が良くなったりすることもある。
sp_updatestatsを実行して様子を見てみたり、
WITH(INDEX())とかしてインデックスを指定したりOPTION FORCE ORDERとかやってみれば収まるかもしれない。
それにわざと違うインデックスとか指定してみて同じくらいの応答時間になるインデックスを探してみたりとかしてみたりするよ。
プロファイラで見ると使って欲しいインデックスを使って検索していたときに比べてReadの数が妙に多かったりする。

186:178
08/06/12 00:19:28 z6+fGzza
確認が遅れてすいません。環境は以下のとおりです。
SQLJDBC1.0.809.102
WindowsServer2003 SP2
SQLServer2005

[SQL]
SELECT *
FROM TBL1 A,
(SELECT DISTINCT child1, child2
FROM TBL1
WHERE (parent2 >= '1000000000' AND parent2 <= '2000000000')
) B
WHERE (A.child1 = B.child1 AND A.child2 = B.child2)
AND A.parent2=A.child2

上記SQLは1秒以下で実行されますが、
列parent2の1000000000、2000000000をバインド変数にした時は
200秒近く掛かってしまいます。

また、parent2とchild2はそれぞれインデックスが張られています。

他にも出すべき情報がありましたら教えてください。
よろしくお願いします。

187:NAME IS NULL
08/06/12 00:43:59
Distinctと*をやめれ

188:NAME IS NULL
08/06/12 00:45:43
あとはparent2 >= '1000000000' AND parent2 <= '2000000000'をBetweenにかえろ。


189:NAME IS NULL
08/06/12 01:50:58
>186
同じクエリをManagementStudioで実行プランを表示で実行してみろよ。
バインド変数を使った方のクエリはプロファイラに表示されたクエリをそのままコピって
ManagementStudioで実行して同じように長時間かかる場合が再現すると状況を確認できるよ。
大抵素直に再現してくれるよ。
多分違う実行プランが表示される気がする。

>188
BETWEENは>=と<=に展開されて実行されているんだよ……
多分差がでることはないよ。

190:NAME IS NULL
08/06/12 02:03:23
1. parent2にクラスタ化インデックスを作る
2. (child1,child2)でハッシュインデックスを作る
3. 結合方法をJoin句に変える
というのはどうなのでしょう?

191:NAME IS NULL
08/06/12 09:28:36
parent1, 2をクォーテーションで囲んでいるということは、まさかvarchar系じゃないだろうな。
numericじゃなければそうした方がいいと思う(そんなはずはないと思うが)。
と、心にもないことを言ってみるテスト。

>>189-190
betweenで速度改善が望めるらしいソースはここにあるけど、もしかして古すぎる情報かな。
ベンダ依存なのかもしれないけど・・・
URLリンク(www.geocities.jp)

192:NAME IS NULL
08/06/12 13:08:17
ADO.NetからSQL-Server2000を使用しています。
ストアドプロシージャに関して質問させてください。

DataAdapter の InsertCommand 用にデータを挿入するストアドプロシージャ Insert1
を作成しました。Insert1 ではストアド Proc2 を呼び出しています。

Proc2 内で select を実行すると呼び出しもとの DataAdapter にその結果セットが
帰ってくるのですが、これを Insert1 で受け取って破棄するにはどうすればいいの
でしょうか。

コードで書くとこんな感じです。

Create Procudure Proc1 as begin
 exec proc2 -- ここでproc2の結果セットを破棄したい。
end

Create Procudure Proc2 as begin
-- 何か処理して処理後の結果を返す
 select * from table1
end

環境は
VisualStudio 2005 Pro(VB.Net)
SQL-Server 2000 Ent です。

よろしくお願いします。


193:NAME IS NULL
08/06/12 14:53:30
>>186
これは実行プランを比べてみないとわからないね。
ポイントになりそうところは
parent2 >= '1000000000' AND parent2 <= '2000000000'
がおおよそどのくらいヒットするかという点。案外件数が少なくない?
parent2 >= ? AND parent2 <= ? としてしまうとオプティマイザは
どのくらいヒットしそうか予測できないので最適化の判断を誤る可能性がある。

194:NAME IS NULL
08/06/12 14:58:08
仮にネストしたループにプランされてしまっていたら大幅に遅くなるよね。
つまりAに対して1レコードずつ判定を繰り返す。
SELECT * FROM TBL1 A
WHERE A.parent2 = A.child2
AND EXISTS (
 SELECT * FROM TBL1 B
   WHERE A.child1 = B.child1 AND A.child2 = B.child2
     AND parent2 >= ? AND parent2 <= ?)
このSQLはイメージでこれを実行しても別の最適化がされる可能性があるので注意。



次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4054日前に更新/251 KB
担当:undef