Microsoft SQL Server 総合スレ3【MS SQL】

このエントリーをはてなブックマークに追加
952NAME IS NULL:2006/03/06(月) 14:47:41 ID:???
SQL2000のSP4ってMS03-031以降のセキュリティアップデートって何か含んでます?
953NAME IS NULL:2006/03/06(月) 15:53:35 ID:???
>>952
精子含んでたような。
954NAME IS NULL:2006/03/07(火) 08:51:29 ID:???
                        _____
       / ̄ ̄ ̄ ̄\,,      /−、 −、    \
      /_____  ヽ    /  |  ・|・  | 、    \
      | ─ 、 ─ 、 ヽ |  |   / / `-●−′ \    ヽ
      |  ・|・  |─ |___/   |/ ── |  ──   ヽ   |
      |` - c`─ ′  6 l   |. ── |  ──    |   |
   .   ヽ (____  ,-′   | ── |  ──     |   l
        ヽ ___ /ヽ     ヽ (__|____  / /   
        / |/\/ l ^ヽ    \           / /
        | |      |  |     l━━(t)━━━━┥
955NAME IS NULL:2006/03/07(火) 10:53:01 ID:RKE0wbv3
SQL Serverの無料版ありませんか。
956NAME IS NULL:2006/03/07(火) 10:56:17 ID:???
MSDE
957NAME IS NULL:2006/03/07(火) 11:17:29 ID:???
958NAME IS NULL:2006/03/07(火) 11:48:36 ID:???
>>957
これって(2000でいう)DTSみたいなのは使えるんですか?
959NAME IS NULL:2006/03/07(火) 11:51:31 ID:???
無料なんだから自分で試せよ
960NAME IS NULL:2006/03/07(火) 13:33:09 ID:???
>>958
IntegrationServiceは駄目って機能比較のとこに書いてあるじゃん
961NAME IS NULL:2006/03/07(火) 18:35:35 ID:???
DTS使えないからMSDEでいいやって思うおれ
962NAME IS NULL:2006/03/07(火) 21:45:41 ID:???
MSDEにはDTSはついてないだけで使えるのは使えるんじゃないの?
963946:2006/03/07(火) 22:14:07 ID:???
>949
レスありがとうございます。
亀レスすいません。
やっぱり細かく検証するためには6.5必要ですね。
964NAME IS NULL:2006/03/08(水) 23:23:02 ID:smSr7Xvp
32bit版上のデータベースをデタッチして、64bit版に正常にアタッチすることは出来ますか?
あと、32bit版から64bit版にmsdbを移すことが出来ますでしょうか?
965964:2006/03/08(水) 23:28:03 ID:???
すいません、ググッたら2005はもちろん、2000でも出来るみたいでした。
966NAME IS NULL:2006/03/08(水) 23:37:55 ID:???
SQLの記述に関する質問です。

テスト結果テーブル ※KEY項目は無し

名前  年齢 国語  数学  英語
−−−−−−−−−−−−−−−−−−−
たろう 12  10 100  50  ←@
たろう 12  30  50  20  ←A  
はなこ 13  80  50  50  ←B
はなこ 13  90  70  50  ←C
はなこ 14  10  10  10  ←D



項目「名前」と「年齢」が同一のものが複数存在した場合は、
最初の1件目のデータのみ抽出する



<抽出したい結果>
名前  年齢 国語  数学  英語
−−−−−−−−−−−−−−−−−−−
たろう 12  10 100  50  ←@ 
はなこ 13  80  50  50  ←B
はなこ 14  10  10  10  ←D


SQLのみで記述してこのような結果を抽出するには
どうしたら良いのでしょうか?
環境はSQLServer2003です
967NAME IS NULL:2006/03/08(水) 23:46:26 ID:???
今から2000のDEV買って開発を始める俺はアフォですか?
あと、もう2000って生産中止ですか?
968NAME IS NULL:2006/03/09(木) 00:13:09 ID:???
>>966
最初の1件目というのを判別する連番などのカラムは有りませんか?
969NAME IS NULL:2006/03/09(木) 01:32:10 ID:???
>>968
ないようです。
やはり、判別する項目がないと無理そうですよね。
970NAME IS NULL:2006/03/09(木) 07:03:36 ID:???
>>969
そもそも、最初の1件ってのが定義あいまいなんだよ。
テーブルに格納されているデータは順序が保証されないから、例のように
1件目って言われても「はぁ?」って感じ
971NAME IS NULL:2006/03/09(木) 19:30:39 ID:???
>>968
Excelの行と間違えてないか??
972NAME IS NULL:2006/03/09(木) 19:31:43 ID:???
SELECT TOP 1
973NAME IS NULL:2006/03/09(木) 20:40:21 ID:???
>>972
order by なしの top 1 だと、たまたま最初にヒットした1件目ということかい?
974NAME IS NULL:2006/03/09(木) 21:10:36 ID:???
>>973
そゆこと。最初の1件であることは確か。順序はわからんけどw
975NAME IS NULL:2006/03/09(木) 22:05:53 ID:???
真剣に答えようにも>>968-970のように答えようがない。
976NAME IS NULL:2006/03/09(木) 23:51:05 ID:???
966です。レス有難うございます。

SELECT DISTINCT 
  TB1.名前,TB1.年齢,TB1.国語,TB1.数学,TB1.英語
FROM
  (
    SELECT
   名前 AS 名前,
      年齢 AS 年齢,
      国語 AS 国語,
      数学 AS 数学,
      英語 AS 英語,
     (文字型の国語+文字型の数学+文字型の英語)AS 科目
    FROM テスト結果テーブル
  )AS TB1,
  (
    SELECT
      名前 AS 名前,
      年齢 AS 年齢,
      MIN(文字型の国語+文字型の数学+文字型の英語) AS 科目
    FROM テスト結果テーブル
    WHERE xxxxx
    GROUP BY
      名前,年齢
  )AS TB2
WHERE TB1.科目=TB2.科目


こんな感じにしてみました。
>>970 の通りなので、これでOKが貰えると思います。
977NAME IS NULL:2006/03/10(金) 00:01:48 ID:???
なんで全角で書くかね。
978NAME IS NULL:2006/03/10(金) 09:34:28 ID:???
実行するたびに値が変わっても文句は言えないよ。
979NAME IS NULL:2006/03/12(日) 01:42:43 ID:???
TOP 1で出てくるレコードって、インデックス無しのテーブルではどうやって決まってるんだ?
リストアで変わったりするようなのだが、そういうものなのか?
980NAME IS NULL:2006/03/12(日) 02:18:08 ID:???
>>899
ちょっと日がたってるけど気になったので。

マニュアルも探せないヴぁかのくせに悪態つかないほうがいいぞ。
981NAME IS NULL:2006/03/12(日) 18:24:26 ID:???
>>980
余程悔しかったのですね!( ´,_ゝ`)プッ
982980:2006/03/12(日) 19:27:18 ID:???
ん?漏れは単なる通りがかりよ。
マニュアルとかってWebを見ればすぐに見つかるものなのに、それすらしないくせに文句言うやつが頭にきただけ。
身近にいるやつとダブった。
聞き流しておくれ。
983NAME IS NULL:2006/03/12(日) 20:10:18 ID:???
>>982
そんなに顔を真っ赤にして目に涙を浮かべて必死にならないでも・・・( ´,_ゝ`)プッ
984NAME IS NULL:2006/03/13(月) 10:42:20 ID:???
>>979
物理的な読み出し順等になるかと。
バックアップ時に、何らかの順番に変わっていれば
リストアもその順番になるだろう。
985NAME IS NULL:2006/03/13(月) 13:13:16 ID:???
>>980-983
       /\___/\
     / -‐'  'ー-' ::: \
     | (●), 、(●)、 | ・・・・バカなんだから
     |  ,,ノ(、_, )ヽ、,,   |    
     \  `ニニ´  .:::/
     /`ー‐--‐‐―´´\
986NAME IS NULL:2006/03/13(月) 15:00:02 ID:???
トリガについて教えてください。
レコードが更新された時に、ある列を自動更新がしたく、

CREATE TRIGGER [dbo].[table1_flgupdate] ON [dbo].[table1]
FOR INSERT, UPDATE
AS
UPDATE table1 SET flg = flg + 1
FROM inserted
WHERE table1.code = inserted.code

のようなトリガを作成しました。

フラグの更新はこれで問題なかったのですが、
そのフラグを 0 に戻したい処理があるのですが、
その場合でも、上記トリガで 0 に更新された後に
1 に更新されてしまい、フラグを 0 の状態にできません。

更新された値が 0 の場合は、トリガを実行させないように
するにはどうすればよいでしょうか?

フラグを 0 に更新している箇所で -1 に更新する、というのは
避けたく、トリガの中だけでなんとかしたいと思っています。

アドバイスよろしくお願いします。
987NAME IS NULL:2006/03/13(月) 16:11:03 ID:???
>>986
ALTER TABLE xxx DISABLE TIGGER xxx でトリガを無効にするか、
IF UPDATE(flg) を使ってflgが直接更新されたときとそれ以外のときで処理を分ける。
988986:2006/03/13(月) 18:22:41 ID:???
>>987
ありがとうございます。

IF UPDATE(flg) を試しているのですがうまくいかないので
おかしい所を指摘頂けないでしょうか?

CREATE TRIGGER trig_name on db.table1
FOR INSERT, UPDATE
AS
IF UPDATE(flg)
RETURN
ELSE
BEGIN
/* 処理 */
END

というトリガがある状態で、

update table1 set flg = 0

とやった場合、トリガの /* 処理 */ の内容が実行されてしまいます。

IF UPDATE(flg) で flg が更新された場合は RETURN しているので
抜けていくと思っているのですが、抜けていきません。

何か大きな勘違いをしていますでしょうか?

989NAME IS NULL:2006/03/13(月) 23:09:55 ID:???
>>988
CREATE TRIGGERの説明を読むとIF UPDATE()に対しては
ELSEが使えなさそうだけど、その構文で通った?
990986:2006/03/13(月) 23:21:39 ID:???
>>989
ELSE 通りました…。
不安だったので ELSE をやめて、

IF UPDATE(flg) RETURN
BEGIN
/* 処理 */
END

にかえてみましたが同じ結果でした。
991NAME IS NULL:2006/03/13(月) 23:25:24 ID:???
>>988
その範囲は間違ってないような。
再帰クエリーオンにしてるとか、処理のところで条件なしのUPDATEを実行してるとかしてない?
992986:2006/03/13(月) 23:49:45 ID:???
>>991
ありがとうございます。整理して調査してみたら
別のトリガで更新された結果、再度トリガが起動されているような
状態でした。失礼しました。

1つ気になる所があるので教えて頂きたいのですが、
IF UPDATE(flg) RETURN
の flg が、テーブルデザイン上でデフォルト値が設定されたいた場合
INSERT のトリガで UPDATE(flg) はどのように判断されるのでしょうか?

というのは、今度は INSERT で UPDATE(flg) にひっかかってしまい、
RETURN で抜けてしまうようでそれ以降の処理が実行されなく
なってしまいました。この IF UPDATE(flg) RETURN の行をコメント
アウトすると処理が実行されるので flg が更新対象フィールド
という判定になっていると思うのですが、INSERT を行なっている
箇所をみても flg に値はセットしておらず、考えられるのが
デフォルト値に設定されているからかな、と思うのですが…。

993NAME IS NULL:2006/03/14(火) 00:01:01 ID:???
根本的な質問だけと、みんな、何で接続してる?

 ODBC、ADO、DAO〜
 OLE DB....他になんかあるか?

 パフォーマンス重視するなら何がいいよ?
 
 一概に何がいいとは言い切れないと思うけど....

 

994NAME IS NULL:2006/03/14(火) 07:33:52 ID:???
普通、ADOだろ。
つか、OLE DBインターフェースをラップしたものがADOで、
ODBCインタフェースやOLE DBインターフェースを直接呼んでる人は
おつかれさんって感じ。
995NAME IS NULL:2006/03/14(火) 08:36:03 ID:???
Java/JDBCでやってる。
996NAME IS NULL:2006/03/14(火) 12:15:02 ID:???
生産性も納期も無視してアプリケーションのパフォーマンスだけを追求できるような
研究職じゃないんでね
997NAME IS NULL:2006/03/14(火) 12:56:19 ID:???
BDE/SQL Link...
998NAME IS NULL:2006/03/14(火) 13:04:20 ID:???
>>997
BDEはnvarchar系ダメぽじゃなかったか?
これ使え
ttp://www.crlab.com/sdac
999NAME IS NULL:2006/03/14(火) 13:49:34 ID:???
男は黙ってDBLib/NetLib
1000NAME IS NULL:2006/03/14(火) 14:06:28 ID:???
元は
男は黙ってサッポロビール
だっけ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。