MSDE はアリですか?
3 :
名無しさん@お腹いっぱい。:03/07/01 23:45 ID:beusNXTD
>>1 お疲れ
SQL Server 2000 を勉強中です。
よろしく。
なんでパッケージがないの
5 :
名無しさん@お腹いっぱい。:03/07/02 14:42 ID:/EdfEEIR
どなたか、ログインIDに有効期限を設定する方法を教えていただけませんか?
一番簡単な方法。
ログイン認証をOS認証にして、OSのユーザ設定で
有効期限を設定する。
>6
有り難う御座います。
でも、会社の方針でその案を使う事が出来ません。
いろいろと考えてみたんですが、たしか、masterデータベースのsysloginsテーブル
に、expire_date かなんかのフィールドがありましたよね?(権限が無いので確認
出来ないんですが)
そのフィールドを直接書き換えてやればいいんですかね?
そういうカラムがあるなら
有効期限を設定するspが必ずあるはず。
システムテーブルのデータはは基本的に直接書き換えない
というか、必ず書き換えるコマンドがあるから
ヘルプで探してみ。
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
b
10 :
名無しさん@お腹いっぱい。:03/07/12 00:46 ID:h3bYc/Eh
ログインじゃなくてログオンに統一しろよゲイツ
11 :
名無しさん@お腹いっぱい。:03/07/15 22:49 ID:v9grO6SB
最近始めました・・というか、始めざるを得なくなりました。
仕事で使うのですが、会社では教えてくれません。
全て独学になります。
皆様、よろしくお願いいたします。
あぼーん
sp_makewebtaskでHTMLファイルをスケジュールでがしがし作ろうと思ったら、
テンプレートを使うとゴミ入りのHTMLになってしまうだよ。
テンプレートファイルを使って、複数のクエリーから複数のHTMLのtableにしたいんだよう。
ぐぐったら同じような現象の人がusers.gr.jpのMLログにあったけど放置されてた。
丸1日試行錯誤して、結局ゴミを取るvbsを走らせることにした。
現象が出て解決した人がいたら教えてくだらい。
14 :
13:03/07/31 17:54 ID:???
複数のクエリー→単一のHTMLファイルに出力です。このなかのTABLE(表)が複数。
sp_makewebtaskの@codepageは932でshift_jisだ。
おながいしまつ。
あとusers.gr.jpの広告うざ。
15 :
名無しさん@お腹いっぱい。:03/07/31 19:29 ID:9936EkLw
バックアップを行う時に、DTSパッケージとか、ジョブの定義とかも合わせて
バックアップを取ることは出来ないのでしょうか?
Microsoft Access の Project って管理者権限無いと厳しくないか?
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
18 :
名無しさん@お腹いっぱい。:03/08/02 16:44 ID:aYZE3aZK
相変わらず起動が不安定。
オプティマイザしょぼすぎ。
あぼーん
21 :
名無しさん@お腹いっぱい。:03/08/02 22:36 ID:Wd/Q9lbA
22 :
名無しさん@お腹いっぱい。:03/08/03 21:56 ID:WYyDJl9m
MSDEに対してADOで接続するとき、レコードセットにうまく排他ロックが
掛かりません。Lock Typeプロパティはpessimisticにしているんですが、
出来ないようです。何か他の方法はありませんか?
また、自己Writeの失敗のログってどこかに残るのでしょうか?
>22
SQLにロックヒント付けないとダメかも?
>>15 遅くなったけど msdb も一緒にバクアプしたらいいんでないの?
25 :
名無しさん@お腹いっぱい。:03/08/07 22:26 ID:OOmE9YL0
すみません。質問させてください。
下記プログラム実行時、ストアドのsp_whoで同じホスト名が4つ出てしまいます。
そして出た後、コネクションクローズしているのにずっと接続したままです。
ホストが一つだけでるようにし、終了後正常に切断するにはどうプログラミング
すれば良いのでしょう?よろしくお願いします。
Dim Ret As Integer
Dim Exp As String
Dim key As String
Exp = "SELECT * INTO " & "y" & jName & " FROM BKSYS WHERE" & Me.txt検索内容.Value & " Order by 受付No"
Set cn = CurrentProject.Connection
cn.Execute Exp
DoCmd.TransferText acExportDelim, , "yyyy", "C:\検索結果.txt", True
Exp = "DROP TABLE yyyy"
cn.Execute Exp
MsgBox ("エクスポート完了")
cn.Close:Set cn = Nothing
26 :
名無しさん@お腹いっぱい。:03/08/08 11:27 ID:1Pt/oRTP
MSSQLServerは7以降でスケーラビリティが向上して、マルチプロセッサの恩恵を
より受けやすくなった(←教科書まんま)
って、ホントに?
マシンがSMPか否かで書くクエリを変えたほうがよりパフォーマンスが上がる
と思うんですけど。
つーか、CPUを1個→2個に増やしても全然効果の出ないSQLServerって一体。
Oracleは劇的に変わってくれたのに。
あぼーん
>26
何がボトルネックになっていて、それを解消する為には何が必要なのかが間違っているのでわ。
29 :
名無しさん@お腹いっぱい。:03/08/14 22:25 ID:YZJ21c5+
T-SQL教えてくれるサイト無い?
あぼーん
そんなバカな。
33 :
山崎 渉:03/08/15 21:57 ID:???
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
34 :
山崎 渉:03/08/15 22:51 ID:???
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
そんなバナナ
.┌┐
/ /
./ / i
| ( ゚Д゚)
|(ノi |)
| i i
\_ヽ_,ゝ
U" U
36 :
名無しさん@お腹いっぱい。:03/08/19 14:05 ID:MiYBe/DA
クエリアナライザーを使ってると、画面がおかしくなる事あるんだけど、
あれ、なに?
37 :
名無しさん@お腹いっぱい。:03/08/27 12:04 ID:NJRQ1obJ
Administrator権限のないドメインユーザーで
SQLServer2000 PersonalEdtionをWindowsXPにインストールしたいのですが
権限がないとおこられてしまいました。
次にAdministrator権限を持ったドメインユーザーでインストールしたところ
インストールはできたのですが、Administrator権限のないドメインユーザーで
ログインしなおすとSQLServerの起動すら権限がないと言われてしまいます。
インストール途中のサービスアカウントの設定画面では
「各サービスの設定をカスタマイズ」を選択しドメインユーザーアカウントを使用を選び
Administrator権限のないドメインユーザーを設定しています。
これだけの情報で足りているか不安ですが
どこで間違っているか解りましたら指摘お願いします。m(_ _)m
38 :
名無しさん@お腹いっぱい。:03/08/27 13:54 ID:BucCbpyi
(ここは荒れすぎてて、どこに書いていいやら迷った上、マルチになってしまったけど、一応書き込み
SQLサーバー2000をずっと運用してます。今までトラブルらしいトラブルなかったのに、
2週間前ほど前から、毎日のように、
1.ログ出力容量オーバーフロー
2.接続クライアント数オーバー(200)
が連続で起こるようになり、原因調査中です。2.については、実際の同時接続は10程度です。
また、MSのサポート情報で、ログイン/ログアウトを頻繁に繰り返すと、
ログインの状態がすぐにクリアされずにたまっていき、接続中の扱いの数が増えてしまうことがある、
とありました。そのようなアクセスのしかたはしていません。サーバーはインターネット上に開いています。
不正アクセスの可能性も考慮したいのですが、なにかアドバイスありましたらお願いします。
>>37 ローカルのAdministrator で操作できんの?
あと、ローカルのAdministratosグループにそのドメインユーザーを
追加しておくとか。
あとインストールさえできれば起動は自動にしてシステムアカウントにしとけば
いいんでない?再起動が難しいが
40 :
名無しさん@お腹いっぱい。:03/08/27 18:17 ID:NJRQ1obJ
>>39 ローカルのAdministrator でログインして
Enterprise Manager の(local)で右クリック → プロパティ → セキュリティ で
サービス開始アカウントが[特定のアカウント]になていたので
[システムアカウント]に変更したら起動することができました。
あぼーん
42 :
名無しさん@お腹いっぱい。:03/08/28 16:48 ID:5+Xb4HOA
顧客に納品後、仕様変更が発生して
テーブルに項目が追加しないといけません。
客先で作業するのに一番簡単な手法は何になるでしょう?
客先で作業する人はSQLの知識全くなくPCの基本的な扱いができる程度
SQLServer2000 PersonalEdtion
単にテーブルレイアウト変えるだけならSQLスクリプトファイル実行させるだけでいいと思うが。
でも、そんな単純な話じゃないでしょ?
44 :
42:03/08/28 19:29 ID:5+Xb4HOA
>>43 できれば何も考えずに指定したファイルを実行(ダブルクリック)させて
終わりにしたい。
>44
レイアウト変更のSQLを実行したい、っていうだけなら、
osqlを使ってSQLを実行する為のバッチファイルを書けば良い。
拡張子を.batにしておけばダブルクリックのみで実行できる。
46 :
名無しさん@お腹いっぱい。:03/08/29 20:48 ID:X3pigy//
MySQLと間違えて開いてしまった
47 :
名無しさん@お腹いっぱい。:03/08/30 23:00 ID:LvNvFayb
複合列のインデックス(A列・B列・C列の順)に対してC列で検索
してもインデックスが使われないのは常識だと思うのですが。
SQLServerってA・B・C列全部を指定しないと(Aのみ、A・Bの
みだと)インデックスを使ってくれないと言われたんですが本当でし
ょうか?ちょっと信じ難いのですが。
SQLServer2000です。
>47
SQL鯖も同じです。
クエリアナライザで実行プランを見てみればわかります。
前者はインデックスを使用せずTableScanしますが、
後者はちゃんとIndexSeekしているのがわかります。
49 :
名無しさん@お腹いっぱい。:03/08/31 01:10 ID:s52bkr9k
>>48 ああ、やっぱりそうですよね。回答ありがとうございます。
ところで、上記例でA列のみで検索する際、もしB列やC列がNULL可
であってもSQL鯖はインデックスを使ってくれるものなのでしょうか?
ここ数日パフォーマンス改善の為にインデックスの見直しを行っているの
ですが、こっちが考えたインデックスをSQL鯖が使ってくれなくて??
の嵐です・・・
50 :
名無しさん@お腹いっぱい。:03/09/01 14:28 ID:CXXCCVK+
INFORMATION_SCHEMA.COLUMNS でカラムの情報が取得できますが、
カラムの説明(コメント?)を取得する方法はありますか?
SQLServer2000です。
51 :
名無しさん@お腹いっぱい。:03/09/01 22:04 ID:7ITDSPGB
次期Office2003にはMSDEは何が付いてくるの??
>>51 Officeに併せてSQLSrvの発表があるとはおもえないので、2Kじゃないでしょうか。
さすがにOSみたいにDBMSのバージョンを頻繁にあげてもM$にメリットはないでしょうし。
53 :
名無しさん@お腹いっぱい。:03/09/04 18:08 ID:THtORVf6
SQLServer 2000 Personalを使っています。
SP3まで入っています。
今日突然EnterPriseManagerが起動できなくなりました。
「SQLDMOが登録されていません。SQLServerのセットアップを再実行し、システム管理者に連絡してください。」
というメッセージが出ます。
さらにOKボタンを押すと
「スナップインを初期化できませんでした。」
↓
「スナップインの作成に失敗しました。
スナップインは作成されていません。正しくインストールされていない可能性があります。」
となり何もできません。
ただし あらかじめ作ってあったADPを開くと中を見ることはできます。
バックアップとかはできませんでした。
何か対処方法あるでしょうか?
ちなみに今日やった作業と言えば OfficeUpdateくらい・・・
54 :
名無しさん@お腹いっぱい。:03/09/04 18:28 ID:6z7DDqNO
55 :
53:03/09/05 19:23 ID:9sZX0MpF
結局直せなかったので
再インストールしました。
他でこのような現象まったく出ていないので
Office Updateは関係ないですね。
56 :
名無しさん@お腹いっぱい。:03/09/06 22:30 ID:8B48tcb8
ORACLEよりMSSQLの方がいいのかゴラァ
>56
条件による。
VisualStudio.NETについてきたMSDEをインストールしたら、
インスタンスがHOGE\NetSDKになったのだけど、これって
名前を変更できないの?
>>58 セットアップと同じディレクトリにある .ini に、インスタンス名書いてない?
#つーか、SP3aをMSからダウンロードすれば……
60 :
名無しさん@お腹いっぱい。:03/09/08 16:39 ID:VNXPoBK9
SQL Server 2000 120日間限定評価版 Release Aって
どうやってインストールするの?
ダウンロードして解凍したけど、インストーラとか
ないんだけど・・・。
61 :
名無しさん@お腹いっぱい。:03/09/08 17:32 ID:zCzjrhxm
setup.bat
えーとすいません。
Windows 2003 Server Standard Edition + SQL Server 2000 と
Windows NT 4.0 + SQL Server 6.5 でレプリケーションのテストを行っているのですが
レコードの存在するDBをパブリッシュするとテーブルのコピーに失敗します。
どうすればいいのか教えていただきたいのですが。
レコードの無いテーブル情報のみの空のDBをパブリッシュしたときはうまく動き、
その後の更新もサブスクライバに反映されたのですが。
2000側がパブリッシャ、6.5側がサブスクライバで
トランザクションレプリケーション、即時更新はなし、です。
OSにもSQL ServerにもSPの類はインストールしていません。
63 :
名無しさん@お腹いっぱい。:03/09/11 05:27 ID:27rlHfYT
ストアドプロシージャ内で作った一時テーブルを
ストアドプロシージャ外(呼び出し元)から利用することは
できますか?
できそうなものですが・・・そんなテーブルは無いと怒られました
64 :
名無しさん@お腹いっぱい。:03/09/14 18:24 ID:T0nvba1V
MCP板ってあるの?みつからないんだけど、
65 :
名無しさん@お腹いっぱい。:03/09/18 09:40 ID:zyOaYKQh
Windows2000にtomcat4とSQL Server7を連携させたWebシステムを
開発しているのですが、commitがうまくいくときといかないときが
あります。
データ更新SQLとcommitはストアドに記述しているのですが、この方法って
問題あるのでしょうか?
JDBCはjtds-0.5.1を使ってます。
だれかたすけて〜〜〜〜
66 :
名無しさん@お腹いっぱい。:03/09/19 07:59 ID:/Xt5vCla
MSのサイトからSQL Server 2000のSP3aをダウンロードしようとしているのですが
「ページを表示できません」となってしまいます。
Windows UpdateはできたのでFWとかのせいではないと思うのですが、
サーバー側の問題でしょうか?
他の方はどうですか?
68 :
66:03/09/20 01:16 ID:???
ほんとだ、できますね。
何だったのかな??
69 :
名無しさん@お腹いっぱい。:03/09/20 16:11 ID:rRQMKVbe
ACCESSのMDB から SQL SERVER 7.0 に先日移行しました。
ひとつ問題が出たのですがMDBのファイルだと3年半で1.1GBであったのに対し
SQL SERVER 7.0 のバックアップファイルは1日10MBづつ容量が増え
このままだと半年もしないで1GBを消費してしまいそうです。
「データベースの圧縮」を実行してみたのですが、mdfファイルの容量は
変わらないので、バックアップファイルの容量も変化なしです。
何とか容量の増加を抑える方法はありませんでしょうか?
トランザクションログが溜まってるのでわ?
71 :
名無しさん@お腹いっぱい。:03/09/23 11:46 ID:Or9By2o2
1.1GBのMDBファイルって...
72 :
名無しさん@お腹いっぱい。:03/09/23 19:02 ID:w74Jjv3+
SQL Serverのimage型にASPを使って画像を保存する
には、どうしたらよいのでしょうか?
winNT4.0かwin2K(サービスパックは最新)にインストールできる
SQL Serverの最新版のバージョンを教えてください。
自分の調べではSQL Server2000にSP3aを当てたものと思うのですが
ちがっていたらご教授おねがいします。
75 :
名無しさん@お腹いっぱい。:03/09/25 14:56 ID:9aQaZ91v
SQL Server7.0で銀行型丸め(四捨六入)はどうすれば出来ますか?
銀行型丸めと四捨六入とは違うのでは?
銀行型丸め=四捨六入 じゃないの?
このスレってさ、営業スレだろ?
すげー笑えるんだけどw
>>80 んーと、銀行型丸めはちょうど.5の場合で、四捨六入は
丸める桁の数字が5の場合ってことでいいのかな?
OracleのSQL*Plusライクなツールって、SQL-Server2000にもありまつか?
あったら名前おしえてちょ。
osql?
銀行型丸めは四捨六入の一種であって、イコールではないということかと
>>84 偶数と奇数で0.5の処理が違う。
1.5 → 2 切り上げ
2.5 → 2 切り捨て
3.5 → 4 切り上げ
4.5 → 4 切り捨て
>>85 そういうのも四捨六入に含まれる
四捨六入の場合、5の処理はいろいろあるということだ
87 :
名無しさん@お腹いっぱい。:03/10/01 18:05 ID:W3duBQj5
ADO.NETとMSDEで、システム組んでます。
トランザクションで質問なのですが、
Serializable でBeginTransaction()とすると、その瞬間から、
すべてのテーブルにロックがかかるのでしょうか?
それとも Selectなど、SQLを発行したテーブルにだけ、ロックが
かかるのでしょうか?
88 :
名無しさん@お腹いっぱい。:03/10/01 20:20 ID:WqrFwWYj
>>87 × すべてのテーブルにロックがかかるのでしょうか?
○ それとも Selectなど、SQLを発行したテーブルにだけ、ロックが
90 :
89:03/10/02 21:38 ID:???
違ったテーブルが全てロックされる分けでは無いわーなぁ。
先ずはレコードから
>>90 レコードだけロックしても、RepeatableReadにはなってもSerializableにはならないんじゃ?
92 :
69:03/10/04 08:47 ID:5gjITgOV
>>70 データ圧縮出来ました。ファイル拡張の上限が無制限になっていて
圧縮の作業がされていなかったようです。
すみませんでした。
93 :
名無しさん@お腹いっぱい。:03/10/05 06:30 ID:JwP0DWsy
今1つのSQLで10のクエリを使用して外部結合を行いレコードを取得しています。
クエリアナライザで見る限りデータはうまく取得できているのですが
ソース上で見ていくと、外部結合の元となっているテーブルのデータ
( 給与テーブル.部門コード*=売上テーブル.売上高などといった
給与テーブルから取ってきたデータ)のみMoveNextができていて、
そのほかは1件目のデータがずっとレコードセットに入ったままに
なっています。
FROM句の中の1つのテーブルの中に、さらに外部結合を使用したSQLが
入っており、それが10ある状態です。
あまりにも外部結合が多くなると、Movenextはうまくいかないのでしょうか?
できれば1つのSQLでデータを取得したいのですが、他に方法なないでしょうか?
わかりにくい質問かもしれませんが、どうぞよろしくお願いします。
SQL-Server何でも相談室(無料)
OI2O-69-OI96
95 :
名無しさん@お腹いっぱい。:03/10/05 12:19 ID:yGVJfMgz
98 :
名無しさん@お腹いっぱい。:03/10/05 17:55 ID:6ExKgNSy
Oracle社からよくOracleの情報のメールが届きますよね。
最近ではセミナーの案内のメールが配信されました。
SQLServerでも同じようなメールマガジンって無いですか?
SQLServerの無料セミナー情報がとっても欲しいので・・・
大変初歩的な質問ですけど、SQLServer7.0のアンインストールがウマくできません。
環境はWIN2000です。サービスパックの4を当てています。
テーブルのデタッチも行っているのですが、内部サーバーエラーうんぬんのエラー
メッセージが表示されてしまいます。どなたかよろしくお願いします。
> 内部サーバーエラーうんぬんのエラー
なぜエラー内容を正確に書かないのでしょうか。
内部エラーのため、外部 DLL のロードや呼び出しができません。
詳しくは、プログラムの供給元に問い合わせて下さい。
↑失礼しました。アプリケーションの追加と削除で、アンインストールしようとすると、
上記のエラーメッセージが出てしまうのです。SQLサーバーのヘルプには、
重要 SQL Server を削除する前に、Windows NT イベント ビューア、
レジストリ エディタ、すべての SQL Server アプリケーション、
SQL Server に依存するすべてのアプリケーションなど、
すべてのアプリケーションをシャットダウンしてください。
と、あるのですが、レジストリエディタは普通立ち上げませんし、
依存すると思われるVBは終了させています。
イベントビューアーの止め方は良くわかりません。
102 :
名無しさん@お腹いっぱい。:03/10/09 10:37 ID:I9tywOlC
すいません。初心者です。
SQL SERVER 7.0 を使用していますが、トランザクションログの
切り捨てを自動的に行う設定はないのでしょうか?
完全バックアップを行っても自動的に削除されません・・・。
103 :
名無しさん@お腹いっぱい。:03/10/09 13:46 ID:Okn8/KIr
鯖上のデータベースを丸ごとクライアントに持ってくる方法って無いですか?
104 :
名無しさん@お腹いっぱい。:03/10/09 18:23 ID:fGgCI3f1
>>103 バックアップファイルではだめなんですか?
>103
鯖上のSQL鯖の全テーブルのデータを、クライアントにあるSQL鯖にコピーしたい
という意味なのだろうか?
それなら>104か、DTS、リンクサーバ、レプリケーション。
>>102 BACKUP LOG ホゲホゲDB WITH TRUNCATE_ONLY
つか、ログをバックアップすると自動的に消える。
>>91 テーブルロックをとるのが一番確実なSerializable化手法
108 :
102 :03/10/11 09:19 ID:SWeIE1h0
>>106 ありがとうございます。ログもバックアップ取れば良いのですね。
109 :
トムトム:03/10/11 11:56 ID:lo76nhuj
はじめまして。
皆様に質問です。
MS SQL Server を使ってMS Access を複数のユーザーで使用する事は可能なのでしょうか?
目的としてはAccessデータを複数の人間で使用したいのですが、使用するとフリーズしたりレコードが壊れたりしてしまいます。(当たり前ですが・・・)
又、製作したAccessデータのバージョンがOffice95・97・2000とバラバラなのですがそれでも互換性はあるのでしょうか?
こんな環境です。
MS SQL Server の購入に迷っています。
ご意見をお聞かせください。
よろしくお願いします。
110 :
名無しさん@お腹いっぱい。:03/10/11 13:10 ID:GszSfmFi
>>109 ACCESSのデータベースだと同じテーブルに一度に追加や更新をかけると
壊れることが多いですよね。排他処理がデータベースではできないので
しょうがないのですが。
移行しましたがかなり快適です。運用も楽ですね。
ですがそれなりの勉強が必要です。
Officeのバージョンがばらばらなのは
危険ですね。まず統一することが望ましいです。
一応、ACCESS2000にアップサイジングウィザードという機能があり
オートでSQL SERVERにデータを移すことが出来ますが、
転送途中でエラーを起こし、不完全に移行する場合があるのでその際は
SQL SERVERのDTS機能を使えばOKです。
いろいろ移行の際に問題点があると思いますがそれはテストを繰り返し
行うしかないです。でも現状MDBが破損するのであればACCESS自体の
のソースを見なおしたほうが良いのかもしれないです。SQL SERVERに
移行してもソースがおかしいとデットロックがかかったりしますので。
111 :
トムトム:03/10/11 14:15 ID:lo76nhuj
>>110さん、ありがとうございます。
頑張ってみます。
でも、やっぱバージョン揃えないと駄目そうです。(T_T)/~~~
>109
MSDE使いなされ。
SQL鯖購入はそれからでも遅くないでしょう。
113 :
名無しさん@お腹いっぱい。:03/10/12 14:54 ID:WqyHM4pT
ORACLEからSQLServerに乗り換えるのですが
SQLServerは使ったことがありません。
ORACLE使いがSQLServerを使う場合に
とまどう事ってありますか?
また難しい部分はありますか?
115 :
名無しさん@お腹いっぱい。:03/10/12 16:51 ID:UDvjpkZa
MSDEってどこまで業務で使ってよいのかわからない・・・
MSの所以外で解りやすく説明しているサイトとかある?
117 :
NAME IS NULL:03/10/14 04:29 ID:ceEV+Vmp
118 :
NAME IS NULL:03/10/14 12:39 ID:aKkE+ZIH
MSDEって何ですか
SQLServerの書籍を読んでいると、
時々このMSDEがどうのこうのって話が書いてありますが・・・
>>118 Microsoft Stupid Desktop Engine
マイクロソフトくだらないデスクトップエンジン
121 :
NAME IS NULL:03/10/16 18:51 ID:sySt/eay
>>121 maxell.co.jp(日立マクセル株式会社)だって
123 :
NAME IS NULL:03/10/17 23:12 ID:cDOUHUgl
マジで困ってます。
教えてください。
MSDEをインストールしました。
次に、SQL Server サービスマネージャ というツールを起動しました。
画面には
サーバー:DEFAULT
サービス:
のように表示されておりサービスのコンボボックスには何もない。
何も選択できない。
よって開始することができない。。。
サービスを設定(追加?作成?)するにはどうすればよいのでしょうか?
>>123 手でサーバー名(インスタンス名があれば含めて)を入れてあげれば
いいんでない?赤の四角でも緑の三角でもなく白いんでしょ。
サーバーは既定で開始されてるはず。
ところで、MSDE SP3a で全角/半角とひらがな/カタカナが
insensitiveになってるのを sensitiveに変えるにはどうすれば
いいですか。Analysis Serviceは使いたくありません。
collationは Japanese_CS_ASです。
125 :
NAME IS NULL:03/10/18 10:29 ID:/FTgWjTp
>>124 コンボボックスでの選択なので
手入力は出来ないのです(T-T)
>>125 俺は手入力できるが?
サーバーにコンピュータ名、サービスに SQL Server って入れてみ。
それでダメなら、コンパネ→データソース→ユーザーDSNのMQISが
ちゃんと設定出来てるか確認。
それでもダメならレジストリを直接編集する手もあるが
アンインスト→再インストの方が早い。
127 :
NAME IS NULL:03/10/18 10:52 ID:/FTgWjTp
>>126 やっぱり手入力は出来ないです。
ちなみにサーバー名の方はラベルになっており入力は出来ません。
OSはwin98なのですがコンパネにデータソースというのがありません(T-T)
レジストリの編集する個所を教えてください!!!
128 :
124:03/10/18 10:58 ID:???
>>127 「ODBCデータソース(32ビット)」ってないの?
俺のWin98SEにはあるんだが。
サーバー名手入力不可といい、やっぱりWin98はすごいな。
>127
それってちゃんとインスト出来てないんじゃ…。
データソースも無しに接続出来るわけないじゃん。
でもAccessが入ってればODBCは絶対に有るハズだけどな。
試しに「ファイル名を指定して実行」でsvrnetcn.exeを実行してみ。
SQL Serverネットワークユーティリティが起動しなかったら
ちゃんとインスト出来てない。
>>128 いや、俺が以前にクラのWin98に入れてあげた時はODBC有った。
130 :
NAME IS NULL:03/10/18 11:07 ID:/FTgWjTp
>>128 ありません(T-T)
レジストリの編集個所を知ってましたら教えてくださいm(_ _)m
131 :
NAME IS NULL:03/10/18 11:11 ID:/FTgWjTp
>>129 SQLServerネットワークユーティリティは起動できます。
全般タブには
サーバーのネットワークライブラリ 接続パラメータ
------------------------------------------------------
共有メモリ
マルチプロトコル DEFAULT
TCP/IP 1433
のようになっております。
>>131 俺の画面と全然違うな。
バージョン幾つだよ。
レジストリめんどくせぇな。
レジストリエディタを開いてHKEY_LOCAL_MACHINE\SOFTWARE\ODBCにどんなのがある?
133 :
NAME IS NULL:03/10/18 11:28 ID:/FTgWjTp
>>132 バージョンは、7.0.623です。
ODBCの中には
ODBC.INI
ECDCMusic
ODBC Data Sources
ODBC File DSN
ODBCINST.INI
Microsoft Access Driver (*.mdb)
FileList
Microsoft dBase Driver (*.dbf)
FileList
Microsoft dBase VFP Driver (*.dbf)
Microsoft Excel Driver (*.xls)
Microsoft FoxPro Driver (*.dbf)
FileList
・・・
・・・
・・・
・・・
・・・
のような感じになっております。。
>>133 バージョンが違うから対応し切れないかもしれないが
取り敢えずODBCINST.INIのODBC DriversとSQL Serverっての有か見て。
んでODBC DriversにSQL Serverってのが有って、値データがInstalledになってるか見て。
値データも書かないと回答出来ないよ。
それとAccessは入ってるよな?
Accessはちゃんと動くのか?
135 :
NAME IS NULL:03/10/18 11:42 ID:/FTgWjTp
>>134 ODBC DriversのSQL Serverのデータは"Installed"になってます!!!
Access2000は入っております。
起動も確認しました。
んじゃあ、次のキーを新規に書く。
ODBC.INIに
LocalServer
名前 種類 データ
(標準) REG_SZ (値の設定なし)
Description REG_SZ
Server REG_SZ (local)
Trusted_Connection REG_SZ
UseProcForPrepare REG_SZ Yes
MQIS
名前 種類 データ
(標準) REG_SZ (値の設定なし)
Dirver REG_SZ [SQLSRV32.dllまでのフルパス]
LastUser REG_SZ [ログイン名]
Server REG_SZ (local)
Trusted_Connection REG_SZ Yes
それが済んだら今度は
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Clientの
データを書いてくれ。
138 :
NAME IS NULL:03/10/18 11:58 ID:/FTgWjTp
>>136 すいません、「種類」とは何でしょうか?
そのような記述がありません。。。
「名前」と「データ」しかありません。
また作成するときに「文字列」「バイナリ」「DWORD値」の3つから
選択するようなのですが「文字列」でOKでしょうか?
>>138 そういやOSも違うからレジストリエディタも違うのか。
種類は全部一緒だから無視して良いでしょ。
文字列書くんだから文字列で。
めんどくせーから一気に逝く。
ウチのClient\ConnectToのキーと値
名前 種類 データ
(標準) REG_SZ (値の設定なし)
DSQUERY REG_SZ DBNETLIB
[コンピュータ名] REG_SZ DBMSSOCN,[コンピュータ名]
140 :
NAME IS NULL:03/10/18 12:08 ID:/FTgWjTp
>>137 Clientには「ConnectTo」「TDS」の2つのキーがあります。
ConnectTo
名前 データ
(標準) (値の設定なし)
DSQUERY "DBNMPNTW"
TDS
名前 データ
(標準) "7.0"
のように設定されています。
141 :
NAME IS NULL:03/10/18 12:11 ID:/FTgWjTp
>>139 コンピュータ名がない場合は「DEFAULT」でOKでしょうか?
>>140 たった二つしか無いのか…。
そりゃ不味いんじゃ…。
やっても無駄な様な気がしてきた。
>>141 もうWin98なんて長い間触ってないけど、マイコンピュータの右クリックで
プロパティのどこかにコンピュータ名書いてないか?
143 :
NAME IS NULL:03/10/18 12:23 ID:iyN+stqc
>>142 やっても無駄ですかぁ(T-T)
マイコンピュータのプロパティでコンピュータ名らしきものが
表示されてません。。。
コンピュータ名がない時点でダメダメのような気がしますね・・・
お時間おかけして申し訳ありませんでしたm(_ _)m
>>143 レジストリエディタでComputerNameで検索
>>143 それと、今更思い付いたんだけど
「ファイル名を指定して実行」でodbcad32.exeでODBCが設定出来るかもな。
146 :
NAME IS NULL:03/10/18 12:30 ID:iyN+stqc
>>144 ありがとうございます。
ComputerNameのデータは"DEFAULT"でした。。。
再インストールした方がはやそうですね(T-T)
色々教えていただきありがとうございました。
147 :
NAME IS NULL:03/10/18 12:32 ID:iyN+stqc
>>145 odbcad32.exeの実行でODBCの設定ができます!!!
でも何を設定すれば良いのかわかりません(爆)
>>147 追加
一番下のSQL Serverを選択→完了
名前と説明は適当
サーバーは(local)
149 :
NAME IS NULL:03/10/18 12:41 ID:iyN+stqc
>>148 サーバーは
local
と入力すればOKですよね?
接続テストで失敗してしまいます(>_<)
てめーもしかしてレジストリにも括弧抜きで書いてねーだろうな?
[SQLSRV32.dllまでのフルパス]
とかもそのまんま書いてそうな悪寒がするのだが…。
152 :
NAME IS NULL:03/10/18 12:52 ID:iyN+stqc
>>151 それは大丈夫です!
(local)と入力しても接続失敗します。。。
再インストールしてみますね。
153 :
NAME IS NULL:03/10/18 13:13 ID:/LPFMQOT
>>152 MSDE使ったことありませんがユーザ設定とかってあるのでしょうか?
SQL SERVERでたまにユーザ設定をしていなくてログイン出来ないと
困っている人がいるのですが。
Win98では強制的にSQL認証になるからsaで無条件にログインできる。
test('-'。)キター(。'-')。。('-'。)キター(。'-')。。('-'。)キター(。'-')
156 :
121:03/10/20 15:58 ID:b5RqcW0O
>>156 2ch的煽りで情報が出ると思ってるのかな(w
あまりにも、あまりにも、だから笑える。
確信犯だろ・・・
そうでなけりゃマジで知障。
会社にチクればヘタすればクビだ。
>>158 こーゆう恥かしいの放し飼いにしてるのは会社自体が2流だから、首にはならんだろ。
恥かしいのすら出てこない、5流以下の会社も多いけどな(w
>>156 コイツ、SQL ServerエンジンとAnalysisが同じもんだと思ってそうだな。
しかし何が言いたいのかまったくよくわらん文章だな(w
>161=156のリンク先の中の人
163 :
NAME IS NULL:03/10/24 14:52 ID:I68UZVLD
VBでSQL Serverのあるサーバーにアクセスするプログラムを
作ったのですが、いざ客先でEXEを起動すると
<初期化文字列の形式はOLE DB仕様に準拠していません>
というダイアログが出て終了してしまいました。
何が原因なのでしょう?
164 :
NAME IS NULL:03/10/24 15:57 ID:QHM+8JsC
おまえの頭
Server: Msg 3624, Level 20, State 1, Line 1
Location: q:\SPHINX\NTDBMS\storeng\drs\include\record.inl:1447
Expression: m_SizeRec > 0 && m_SizeRec <= MAXDATAROW
SPID: 54
Process ID: 784
以上のエラーが不定期に出て困っています。なにが原因で起こるのか見当がつきません。
何卒ご教授願えませんでしょうか。
167 :
NAME IS NULL:03/10/26 03:01 ID:yMVkw4Qf
ご教授 キタ━━━━(゚∀゚)━━━━ッ!!
169 :
166:03/10/26 17:58 ID:???
>>167-168 今のところ、なんとか解決したようにみえます。
どうもありがとうございました。
170 :
NAME IS NULL:03/10/30 15:27 ID:nelBRxzy
指定した名前のテーブルが存在するかどうかチェックするにはどうすればよいのでしょうか?
以下の方法でとりあえずできたのですが、もっと効率の良い方法はないでしょうか?
if exists (select * from dbo.sysobjects
where id = object_id(N'$name')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
>>170 システムテーブルを参照しる!(って、あったっけ??)
テーブルの存在チェックをしなきゃいけない設計自体がどうかとおぢさんは・・・略
>>170 if exists (select name from master.dbo.sysdatabases where name = 'データベース名')
173 :
172:03/10/30 22:24 ID:???
ごめん、反射的にデータベースの存在確認しちまった。
if exists (select name from sysobjects where name = 'テーブル名')
174 :
NAME IS NULL:03/10/31 01:35 ID:MPayyV2T
現在、ORACE 8.0.5 + VB 6.0 + ODBC(DAO)の環境で動いているアプリを
SQL Server 2000に移行する事になりました。
ソースの変更は出来るだけ少なくしたいので、VBは引き続き6.0を使うのつもりですが、
ODBC+SQL Serverの環境で何か問題ないでしょうか?
他に(ADOとか)変えた方がいいですか?
>>174 DBを変える目的は何なの?
まぁ、余裕があるならADOにしてもいいけど、止めとけ
176 :
170:03/10/31 10:50 ID:???
>>173 うまくいきました。
ありがとうございます。
>>177 意外と面倒だから余裕がなければ止めとけということでは
179 :
174:03/11/01 11:25 ID:???
とりあえずDAOでSQL Serverとの接続等ができました。
あとは移したデータに主キーとかを付けないといけないし・・・結構面倒だなぁ。
>>175 何か予算の都合でオラクル買えなかったらいしいです。
あと担当者がMS好きな方なので(ry
180 :
NAME IS NULL:03/11/02 11:20 ID:K4tQJ7hV
>>174 ODBCに依存しないでADOで直接DBを参照した方が安定しますし、
高速ですよ。DB変える前にプログラムを変えたほうが
効果はあると思いますが…。
181 :
174:03/11/02 12:08 ID:???
>>180 >ODBCに依存しないでADOで直接DBを参照した方が安定しますし、 高速ですよ。
そうなんですか。最近Web系の仕事ばかりだったので、その辺は疎いです。
調べてみます。ありがとう。
182 :
NAME IS NULL:03/11/03 18:45 ID:3bDk0xme
SQL2000で既定のインスタンスにDBを20個ほど作成したら、
エンタープライズマネージャのツリーを展開させる動きが極端に遅くなりますた…
回避策ってあります?
名前付インスタンスを作ってインスタンスを分けるのって効果あるのでしょうか?
メモリやCPUのリソース配分は同じような気がするのですが。
select 〜 from TABLE order by ID
ID
------
1
3
2
5
4
6
------------------------
order by でならべかえられたレコードセットのうち
3〜5のIDだけのレコードセットを取り出すにはどのようなSQL文を書いてから
rs.open sql,conn,3,3
などとやればいいんですか?
いつも3〜5を抜き出すわけではないので、x〜yを抜き出すSQL文で任意の範囲のレコードセットを取得したいです。
where (ID => 3 and ID <= 5)
where (ID => 3 and ID <= 5)
186 :
183:03/11/04 23:16 ID:???
ちょっと言い方間違ってました。
order byでならべたレコードセットのx番目からx+1番目、x+2番目までの3個取り出したいです。
となるとopenした後にmovenextの回数とxを比較していくしかないのでわ(;´Д`)
188 :
183:03/11/05 01:00 ID:???
>>187 わたしもそれがおもいついてたのですが、
ASPにはDoeventに相当するメソッドがないみたいなのではげしくrs.movenextをしたくないなあとおもってたところだったのです。
SQLにはTOPキーワードしかないようですし。
結局movenextで最初の数レコードをスルーして目的のレコードを操作することになるようです。
189 :
NAME IS NULL:03/11/05 01:38 ID:SZeIyv6y
mdfからのDB復旧方法についてご存知のかた,教えてください
>>183 orderした結果に順位をつけるクエリーはチラホラ見るから
それの応用でできるのでは?
あとはoederした結果をidentityつきのtemp tableに放り込むくらいか
192 :
183:03/11/06 20:07 ID:???
193 :
NAME IS NULL:03/11/07 16:59 ID:vIZH227m
SQL鯖2KでDB設計しております。
Oracle用としてはObjectBrowserなんかがありますが、SQL鯖に対応しているモデリングツールって無いでしょうか?
>>183 IDが一意ならこんな感じ?
select A.ID
from TABLE as A
where (SELECT COUNT(*) from TABLE B WHERE B.ID <= A.ID) BETWEEN X AND X+3
order by A.ID
195 :
NAME IS NULL:03/11/10 11:21 ID:e3FOvSLN
SQL ServerがインストールされているHDDが残り50Mなので
バックアップ用のテーブル(全部で1Gはある)を消したんですが、容量が増えません。
おそらくはACCESSみたいに最適化しないと容量が増えないんだろう、と素人ながら思ったのですが、
SQL ServerにACCESSの最適化みたいなツールはあるんでしょうか?
エンタープライズマネージャーの保守計画を見ても其れらしきものがなくて・・・
情報お持ちのかた、お願い致します。
196 :
195:03/11/10 11:25 ID:e3FOvSLN
追加で、トランザクションログなんかも凄い容量を食っているみたいです。(1.5G)
今は使用していないDB領域のテーブルのログを削除もしたりしたんですが、(ログの切り捨て)
容量が増える気配はありません。
容量を増やす方法がありましたら、此方もあわせて情報お願いします。
BooksOnlineを「圧縮」というキーワードで探してみると良いであろう
198 :
NAME IS NULL:03/11/10 12:01 ID:e3FOvSLN
>>197 保守計画が出てきました。
でもこれって「今すぐ」実行はできないんですよね?
今すぐ実行したいのですが・・・・
もう一歩踏み込んで調べりゃすぐ出てくるはずだが・・・
んじゃ「データベースの圧縮」
200 :
NAME IS NULL:03/11/10 13:33 ID:e3FOvSLN
>>199 BooksOnlineではなく、エンタプライズマネージャーのヘルプを見てたっぽいです(−−;
色々出てきたのでちょっと見てみます。
201 :
NAME IS NULL:03/11/11 22:50 ID:HlyPcPil
インデックスをつけるときに内部で「ソート処理」をしていると思うのですが、
その場合、マルチプロセッサにすると劇的に速くなりますか?
また、「リレーション処理」の場合は速くなりますか?
RAIDにお金を掛けるか、マルチプロセッサにお金を掛けるか迷っています。
両方にかけるお金がありません。
どうか御助言賜りたく宜しくお願いします。
まずはパフォーマンスチューニングについてキチンと勉強しろ
そうでなければ、どっちに金かけてもたぶん無駄だ
つか「リレーション処理」って何だよ
昔は6.5使ってました。
サーバーを
PEN-PRO 200Mx2
から
PEN3 1Gx2
にしたらものすごく早くなった。
>201
まずハッキリして欲しいのは「インデックスをつける時」の意味。
インデクスを構築する速度なのか、インデクスを用いた検索の速度なのか。
205 :
NAME IS NULL:03/11/12 15:26 ID:nLaq7bin
排他的ロックのかかって止まってしまっているトランザクションを
手動で強制的に削除する方法ってありますか?
SQLServer2000を使っています。
206 :
モッ:03/11/12 16:25 ID:hK4Iz5B9
sql server 6.5なのですが
Identity 属性のフィールドに強制的に任意の数値を入れたいのですが
方法はありますか。。7.0以降では出来るのですが。。
>>202 >つか「リレーション処理」って何だよ
JOIN の事だと思われ
>>205 プロセスをTerminateする。
MSDE 2000 Release A について質問させてください。
MSDE 2000をインストールしていたHDDが故障したので、そのHDDだけ交換し、
MSDE 2000を再インストールしようとしているのですが、インストールできない
状況に陥っています。
PCのOSはWindowsXP SP1です。なおOSを入れてあるHDDは無事でしたので、
OSは再インストール等はしていません。MSDEをインストールしていたHDDには
MSDEしか入っておりませんでした。よって以前の環境とは、インストールされた
osql等のファイル類やmdbファイル等の有無の違いがあります。バックアップは
取得していません。
状況ですが、マイクロソフトからJPN_MSDE2000A.exeをダウンロードしてきて
実行して、展開して作成されたMSDERelAフォルダ内のsetup.exeを
以下のオプションで実行しているのですが、そこで起動してくるWindowsインストーラの
"必要な情報を集めています"のプログレスバーが表示されているダイアログが
プログレスバーが伸びきる途中で消えてしまい、そこでセットアップが終わって
しまいます。
コマンド: > setup.exe SECURITYMODE=SQL SAPWD="(SAのパスワード)"
これらのオプションは、最初にセットアップしたときのものです。
なおプログラムの追加と削除でMSDEをアンインストールしてみたところ、
アンインストールはできてしまいました(よって追加と削除のリストには出てきていない)。
OSから入れなおすしかないのでしょうか?
それともMSDEを強制的に再インストールする方法はありますでしょうか?
209 :
なし:03/11/18 11:19 ID:/G1hiR8p
現在、WindowsNTでMSSQL7.0を使っています。
これをRedhadで作成したJAVAを関連付けたいのですが
JDBCはどこからなにをダウンロードしてよいのかわかりません。
210 :
なし:03/11/18 11:19 ID:/G1hiR8p
現在、WindowsNTでMSSQL7.0を使っています。
これをRedhadで作成したJAVAを関連付けたいのですが
JDBCはどこからなにをダウンロードしてよいのかわかりません。
>>208 instancenameを指定してインスコしてみ。
>>210 Microsoft からJDBC Driverを
FreeTDSでもいい、、、かなあ・・わからん
MS製品とJAVA・・・水と油(嘘
214 :
NAME IS NULL:03/11/20 10:42 ID:CutOn10a
master DB のバックアップはどうして必要なの?
そこに保存されている情報が必要だから。
216 :
NAME IS NULL:03/11/22 01:27 ID:vsf5M3mw
Transact-SQLで書式文字列を指定する方法はありませんか?
0000形式にしたり、3桁ごとにカンマ入れたり。
>>216 convert、right、left関数なんかを駆使して編集するほかないです。
ユーザー定義関数を自分で作ることはできますが。
218 :
NAME IS NULL:03/11/22 09:16 ID:uwjbYH3S
219 :
NAME IS NULL:03/11/23 00:21 ID:+jlhXyEp
>>217 うぅ、、やっぱないんですか…
Accessで出来るのにSQL-Serverで出来ないなんてショック…
>>219 アクセスはフロントエンドまで含んでるからじゃないか?と1しか使ったことが無いのに書いてみる。
221 :
NAME IS NULL:03/11/23 01:27 ID:Ol44HGXJ
Analysis Serviceで毎日売上CUBEを作ったのですがある日から突然、メジャー値が全部NULL
になってしまいました
SQL 2K名のですが、Dimensionなどは表示されていて、メジャーがNULL状態でCUBEの処理は
正常終了しています。どなたかなぜNULLになってしまうのかわかる方いますか?
223 :
NAME IS NULL:03/11/26 21:53 ID:OXc8+WCQ
MSDEの5つまでっていうのはWebサーバで考えた場合どうなるのでしょうか?
ASPからコマンドを実行するのはWebサーバのみなので常に1接続と考えて良いのでしょうか?
10クライアントから同時にアクセスがかかった場合、IIS内で処理待ちが発生しますか?
>>223 Web鯖はマルチスレッドで実行されるので(以下省略
>>223 Web鯖(IIS)にも最大接続数ってあるっぺ?
MSDEと同ず値にすておけ(w
226 :
NAME IS NULL:03/11/27 00:45 ID:L+A/B1UD
SQLServerをTCP/IPで外部から接続できるようにしておくのって
セキュリティ大丈夫でしょうか?
VBで作ったクライアントからインターネットを通じて、
サーバ名にグローバルIPを書いて直接コネクトするようなアプリケーションを作っても問題ないんでしょうか?
>>223 ・5接続までっていうのは接続制限じゃないから、それ以上つなげられる。
・MSはそれ以上つなげるたびにパフォーマンスが低下すると言ってるけど、
パフォーマンスの低下具合は売り物と大して変わらないらしい。
・WebのC/Sはつないでデータ送ったらすぐ接続切っちゃうから(非接続型)、たいして接続数は多くならない。
実際に運用してみないとどうなるかは分からんが、10人くらいなら心配することはないと思うよ。
っていうか、マジで使うなら買えよ。
オラクルほど高くない(w
>226
セキュリティ面では問題大有りでせう。
怖すぎてしょうがない。
230 :
uja:03/11/27 17:11 ID:IPh6eln4
10万件くらいデータが入っているテーブルがあります。
そのテーブルに金額フィールド(int型)があり
sum(金額)をしたのですが、
sqlserver.exeのメモリ使用量が100Mを超えてしまいました。
しかも時間がいくらたっても解放されないのですが、
これは大丈夫なのでしょうか?
開発用でWinXP ProでMSDEを使用しております。
>>227 つか、Win XP/Win 2k pro だと5接続以上はライセンス違反だろ?
232 :
NAME IS NULL:03/11/27 21:50 ID:EvtcCxfJ
>226
>229
みてて質問なんですが
VBがクライアントで、SQLServerなのですが
各クライアントマシンにSQLServerインストールされてません。
つまりODBC。
SQLServerってなんでもあり、ということですか?
質問ですが、オラクルは、各PCにオラクル入ってないとダメですよね?
オラクルっていうかNet○って香具師がいるんじゃなかったか
234 :
NAME IS NULL:03/11/27 22:12 ID:EvtcCxfJ
Net○ってOracle製品の黒CDに入ってるヤツでしょうか?
オラクルインストーラーって重いから嫌っております。
>>229 SQL Slammerが蔓延したと言うことは SQL Server のポートが外部に
対して開いていたサイトがカナーリ沢山あったわけだが・・・
MSも懲りただろうからSP3aを当てときゃ大丈夫なんじゃねーの?
236 :
NAME IS NULL:03/11/27 23:29 ID:taJy62x3
>>234 オラクルインストーラーってJavaでできてなかった?
>>231 あれ?そうだっけ?
Serverシリーズ以外では、外部からは1接続すらライセンス違反だった様な気が…。
つまり、XP 2k等でDBサーバの役割をさせては逝けないってトンデモ規約だったと思う。
5接続云々ってのも、パフォーマンスの話だったと思うけど。
5接続のいいわけにパフォーマンスを持ってきただけ
1接続もあかんなんて言ってない
XPはそれに相当するサーバが無いのでその規約は無い
>>238 Windows XP の場合、EULA に書かれている接続数が守れるなら
外向けでの利用も OK だよ。
‥‥まぁ、どうやって守るかが問題で、少なくとも普通の Web サーバ
とかには使えない。イントラ向けならほぼ大丈夫。
ところで、MS-SQL には以下に相当する SQL 文ってある?
SELECT * FROM hogehoge ORDER BY RAND() LIMIT 2
TOP
>>241 SELECT TOP 2 * FROM hogehoge ORDER BY RAND()
なら「RANDが未定義関数」とかでダメでした。
RAND忘れたてた・・・
っていうかそこにRAND入れる理由があるのか?(w
ようするに、テーブルからランダムで2件取りたいのでつ。
適当な列を作って、そこに乱数ぶっこんでソートして取るってのは
既にやってるのですが、もっと効率よくやりたいのでつ。
MS SQL は初めて使うもんで‥‥スマンです
RANDはseed与えないと駄目。BooksOnline読めや。
説明読むとorder byでは使えない気もする
246 :
NAME IS NULL:03/11/29 16:42 ID:UMFs6pW6
このような経験のある方いませんでしょうか?
もしよろしければ、解決策を教えてください。
ASPで開発をしてまして、スクリプトはVBS,データベースはSQLServer2000を使用しています。
VBS上でコマンドオブジェクトをCreateし、Inset文を代入、実行すると
String または Binaryデータは切り詰められました
と表示されてしまいます。データ長が長いとかの話かと思うのですが、
実際にテキストを吐き出すようにして、そのテキストをコピーし、SQLをクエリアナライザで実行すると
通常に処理されてしまう現象です。
お心あたりのある方いましたら、ご教授ください。
>>246 俺も同じエラー見たことある。nvarcharの最大文字数を減らした後だ。
元に戻したら直った。原因不明。解明しといてね。
>>246,248
SET ANSI_WARNINGSの設定だろう
クエリアナライザのデフォルトはオフだったと思う
250 :
NAME IS NULL:03/12/02 10:41 ID:QQHwkYSO
t-sqlでdatetime型のデータを文字列に変換して出力する方法ありますか?
たとえば
2003/12/02というデータを20031202として取得したいです。
oracleのto_charのようなものがほしいです。
251 :
250:03/12/02 11:01 ID:???
自己解決しました。
252 :
NAME IS NULL:03/12/06 17:31 ID:XlUqzbM8
SQLで好きな位置に列を追加するにはどうしたらいいですか?
>>252 select * じゃなくて、ちゃんとフィールド名を並べればいい
ALTER TABLE の事を逝ってると思われ
255 :
252:03/12/06 21:46 ID:XlUqzbM8
>>253,254
254さんの言う通り、ALTER TABLE ADDで列を追加したいんですけど、そのときに列の位置を指定したいんです。
ヘルプは一応見ましたけどよく分かりませんでした。
>>255 ALTER TABLE ではカラムは最後にしか追加できないと思われ。
間に追加したいのなら、データエクスポート、DROP TABLE、CREATE TABLE
データインポートするあるよろし。
257 :
NAME IS NULL:03/12/06 23:52 ID:VH/5jfLI
ORACLEのexpコマンドと同等のものってありますか?
教えてください。
初心者のうちにはかなりの率で出るけど
覚えてくると必要ないとわかるものの代表だな
カラム位置指定の追加
260 :
NAME IS NULL:03/12/07 08:13 ID:s/ypUrGF
>>259 >カラム位置指定の追加
ん? 出来るのか?
カラム位置指定の追加はEnterpriseManagerのGUIからできたはず。
対象テーブルをマウスの右クリックで。
今手元に環境がないから確認できないけど。
262 :
NAME IS NULL:03/12/08 00:39 ID:S16qHOgT
bcpコマンドでエクスポートできるものって
何があるのですが?
オブジェクトは全てエクスポート可能?
264 :
NAME IS NULL:03/12/08 01:04 ID:S16qHOgT
>>263 うそ〜ん。
データだけっと事はインポート先にテーブルとか
あらかじめ作っとく必要あるのん???
勝手にテーブルやインデックスや制約とかトリガーとか作ってくれないんですね。
教えてください。
やりたいことのイメージは以下のとおりで
実行すると
「ストアドプロシージャのネストレベルが最大値を超えました。」
というエラーがでます。
どのような書き方をすればよいでしょうか?
create procedure yobu as
execute yobareru
go
create procedure yobareru as
select hoge_name from hoge
go
execute yobu
go
>>266 結局やりたいことは
create procedure yobareru as
select hoge_name from hoge
だけではないのですか?
なら
execute yobareru
だけでいいような気がする。
execute yobu
にしなければいけない理由がわからない。
269 :
NAME IS NULL:03/12/08 22:58 ID:ZpRriqmI
>>268 GUIに頼りたくないんすよ。
DTSと同じ事はbcpじゃあ出来ないんすね(T-T)
GUIに頼りたくないわりには、勝手に作ってくれる事を期待してるのな
いみねー
271 :
266:03/12/09 10:18 ID:???
誰かつД`) タスケレ !!
8000件ほどのデータをINSERTで登録してみたところ、100秒近くかかります。
いまどきのPCなら10秒とかからずに登録できるのではないかというイメージ
を勝手に持っていたのですが、こんなものなんでしょうか。
(WinXP(SP1)+SQL Server 2000(SP3)+C#.NET+System.Data.SqlClient+PentiumIII-600MHz+512MBメモリ)
テーブルは固定長文字列50バイト程度のフィールドx10程度で、登録前は空です。
UPDATEだとさらに時間がかかる模様です。
同様のテストをAccessでも行いましたが、大差ありませんでした。
.NET使用時のオーバーヘッドか私のソースが悪いせいでは無いかと疑って
いるのですが、他の環境だとどれくらいの時間がかかるものなのでしょうか。
・INSERTを8000回発行
・8000件挿入されるINSERT文を1回発行
じゃ大違いな訳だが前者をやってるって事でオケ?
275 :
272:03/12/09 18:47 ID:???
>>273 前者です。
やっぱりどこかおかしいですよね。
ちなみにDataSetで同じく登録を行いましたが時間はさらに延びました。内部的には近いことを
するのですから当然でしょうが。
大体で結構ですので、普通どれくらいかかると思いますか?1分以上は考えられないとか、
5秒もかからないだろうとか。
あ、うちのPCが遅いって意味でしたか。
すみません、古い人間なもので600MHzで十分快適だったりするんです。
ドトネトは使ってないんでよく知らんが、千差万別としか言い様が無い気がするが・・・
そりゃ1日かかったらおかしいだろうが。
速度を改善したいなら一括で取り込む方法にすべし。DTSとか。
Accessならテキストファイル自体をテーブルとしてリンクすりゃ劇的に早くなる(はず)
>>272 8000回もループしてたらそれぐらいかかってもしょうがないだろ
279 :
NAME IS NULL:03/12/09 21:07 ID:69w6J3RY
へぇ〜。一回のINSERTで複数のレコードを登録できるんだ。
初めて知った。調べてしまった。
280 :
NAME IS NULL:03/12/09 23:19 ID:1yGh4ssM
プロシージャを使えば早いのでは??
>>272 SQL鯖のストアドプロシージャでやって味噌。
それよりは絶対に遅いから。
282 :
NAME IS NULL:03/12/09 23:20 ID:gZUVM8+8
>>261 どうやってるんだろうと思ってプロファイラで追いかけたら
テーブル作り直してるじゃねーか。
運用中のDBでやったらとんでもないことになるぞ
>>266 SPのネストは32レベルまでだけど、それ以上深くなってるんじゃないの?
>>269 bcpする前にcreate tableなりgrantなりすればいいだけの話では?
必要なクエリはEnterpriseManagerで作れるはず。
DBかテーブルを選んでおいて[ツール]-[SQLスクリプト生成]
T-SQLで教えてください。
SELECT * FROM A INNER JOIN B ON A.IN_DATE = B.IN_DATE
というSQLが実行したいのですが
A.IN_DATEはINT型
B.IN_DATEはDATETIME型
の場合、このSQLをどのように修正すればよいでしょうか?
設計を見直せってのはなしの方向でお願いいたします。
285 :
272:03/12/10 10:48 ID:???
ストアドプロシージャでテストしたところ、数秒程度の違いしか出ませんでした。
>>278の方法は少し調べてみましたが、構文が出てきませんでした。おそらく調べ方
が悪いのだろうとは思うので、時間があるときに調べてみたいと思います。
DTSを使用する方法ですが、テキストファイルに一度吐き出してインポートしたところ
劇的なスピードで取り込めました。
ただ、インポートするデータは同一の主キーを持つデータを多数含み、同一の場合は
他のフィールドを条件によっては上書きしたりしないといけない仕様ですので、この辺
をクリアする必要があります。どうもマクロっぽいことができる模様ですので、こちらの
方法で検討してみたいと思います。
アドバイスありがとうございました。
インポート時の速度と8000回INSERTする速度があまりにも違いすぎるのが不思議では
あります。DTSを使わずに大量のデータを追加するときは皆様はどうやっているのでしょ
うか。
>>285 コミットはどのタイミングで発行してる?
>>284 int型にどういうかたちで値が入っているかによるのでは?
>>283 >運用中のDBでやったらとんでもないことになるぞ
遅いだけでわ?
>>272 ネットワークがネックになってるよ、きっと
スニファで見てみ
>>284 Convert()とかSubstring()を駆使してどちらかをどちらかに合わせるしかない
嫌なら設計を(ry
>>285 アップロード用の別テーブルを用意しておいて
まずそこにbcpでデータを入れる
面倒な処理はその後でストアドプロシージャなり何なりで
SQL server内だけで処理するようにするかな
292 :
272:03/12/11 10:02 ID:???
>>290 書き忘れていましたが、ローカルで実行しています。
>>287 それでした!
INSERT処理開始前と後に明示的なトランザクション処理を追加したところ、
100秒から15秒へと劇的に速度が改善されました。
おそらく常識的な知識なんでしょう。恥ずかしい限りです。最初に私のレベルを
書いておくべきでした。(データベースの勉強を始めたばかりです)
これなら十分な速度です。ありがとうございました。
293 :
284:03/12/11 10:25 ID:???
みんな。ありがとう。
294 :
NAME IS NULL:03/12/12 23:53 ID:b1iZjuVZ
SQLServerで定期的にバックアップする場合
どのように行ってますか?
会社で使っているORACLEは定期的にデータファイルとREDOログファイルとコントロールファイルを保存し
場合によってはエクスポートしたりします。
年明けにSQLServerを導入する事が決まりバックアップの運用方法等を
いくつか提案したいので一般的にどのようにバックアップしているのか教えてください。
296 :
NAME IS NULL:03/12/13 03:12 ID:QcgkDHTn
>>295 皆の会社ではGUIでやってますか?
CUIでバックアップするにはbcpしかないのでしょうか?
それだとデータしか抽出出来ないんですよね?
298 :
NAME IS NULL:03/12/13 16:53 ID:IfFk24TF
テーブルのデフォルト値にファンクションを指定するとデータ登録時ってやっぱり遅くなる?
ファンクションの内が
BEGIN RETURN 1 END
だけだとしても、1と指定するよりも遅くなるんですかね?
>>298 その程度なら遅かったとしても大した違いではないだろう
Insertのパフォーマンスを気にするなら
余計なインデックスやトリガをつけないようにするのが先。
300 :
NAME IS NULL:03/12/16 10:17 ID:K8q4ocRg
SQLでテーブルのリネーム方法を教えてください
301 :
NAME IS NULL:03/12/16 18:36 ID:K8q4ocRg
テーブルをコピーするSQL教えて
"Select 〜 into 〜 From 〜"すら見つけられないのだろうか・・・
って言うか Books Onlineくらい目を通そうよ
>>303 スキーマ毎コピーしたいのだと思われ。
305 :
NAME IS NULL:03/12/17 01:22 ID:mZyTNL7b
テーブルにフィールドを追加するSQLはわかったのですが
追加する位置を指定する事は可能なのでしょうか?
テーブルに10フィールドあるのですが
5フィールド目にフィールドを追加したい場合のSQLを教えてください。
>>302 お前のような奴はこのスレに必要ないからもうくるな
>>305 無理なので地道にやる
GUI でやるとその辺が自動化される
って思ったら 306 が書いてたスマソ
ちょっと教えてください。
/出荷テーブル
出荷商品コード 返品商品コード
******************************************
1 2
3 4
/商品テーブル
コードNO 商品名
******************************************
1 a
2 b
3 c
4 d
この2つのテーブルから
出荷商品コード 出荷商品名 返品商品コード 返品商品名
*******************************************************************
1 a 2 b
3 c 4 d
のようなテーブルを作りたいのですが
SQL文はどのように書いたらいいのでしょう
311 :
NAME IS NULL:03/12/18 17:08 ID:ANiWHVZR
OS:windows2000、SQLServer:SQL7、 VB6 の環境で
DBは一つ: DB_1
MTSアプリ(COM+アプリ)を2つ作成: MTS_1、MTS_2
MTS_1とMTS_2にはそれぞれ別のdllが登録されている: persister_1.dll、persister_2.dll
2つのMTSは両方とも同じDB(DB_1)にアクセスする
というように別々のMTSで同一のDBにアクセスする場合でも、ちゃんと
トランザクションになるんでしょうか?
何がどうなれば「ちゃんとトランザクションになる」と判断できるのさ?
>>310 select 出荷商品コード, 商品1.商品名 as 出荷商品名, 返品商品コード, 商品2.商品名 as 返品商品名
from 出荷テーブル as 出荷
join 商品テーブル as 商品1 on 商品1.コードNO = 出荷.出荷商品コード
join 商品テーブル as 商品2 on 商品2.コードNO = 出荷.返品商品コード
314 :
310:03/12/19 14:04 ID:???
>>313 解決しました。
ありがとうございました。
315 :
NAME IS NULL:03/12/20 12:15 ID:BpQcc6bY
オラクルでの
CREATE TABLE テーブル名 AS SELECT * FROM テーブル名;
がSQLServerでは、ないようなのですが
かわりの機能ってありますか?
SQL文で。
select * into じゃ駄目なの?
317 :
NAME IS NULL:03/12/20 14:28 ID:/vWngleo
オートナンバー型の値を無理やり変える事って出来ますか?
例えば、値が6だとして、INSERTすると7になりますよね?
これを途中で100から連番振るように直したい場合どうしましょう?
318 :
NAME IS NULL:03/12/21 01:30 ID:8iBTpY7S
ON PRIMARY とは、どういう意味でしょうか?
319 :
NAME IS NULL:03/12/21 13:38 ID:FpoMi/lc
_,,....,,_
/:: ::ヽ パパ 質問内容が初心者すぎてこわいよ
/:: _;: ,_, i
/:: r_ 〉、. } おまえは後ろにさがっていなさい
|:: :/-‐, i ノ
|:: " / ⌒ヽ
|:: /|::. | ´_ゝ`)
|:: / |:: | /
/:: / |::. | /| |
/: _/ |:: | / | |
i::_ノ i:_.j.j U
t-sqlで教えてください。
CASE WHEN をうまく使えなくてこまっています。
SELECT
CASE WHEN (
CASE WHEN HOGE_NAME IS NULL THEN SELECT HAGE_NAME FROM HAGE
WHEN HOGE_NAME IS 'POGE' THEN SELECT POGE_NAME FROM POGE
ELSE 'PAGE'
END
) IS NULL THEN 'AHO'
ELSE ??? END AS HOGE
FROM HOGE;
というようなイメージなのですが ??? のところにどういったものを
入れればよいかわからず困っています。
要は、子のCASEで返って来たものをそのままHOGEとして返したいのですが
できますでしょうか?
321 :
NAME IS NULL:03/12/22 16:22 ID:WsKC2EWy
Enterprise Manager5.0において、SQL Server7 SP4上のとあるDBを
オフラインにしたら、Enterprize Mangaerがハングアップしてしまいました。
その後、あらゆる端末から、このSQL Server上のデータベースが
見えなくなってしまいました(アイテムなし と出ます)
DBをほかのDBにインポートしようとしても、
「転送元サーバ上に転送元データベースが見つかりません。」
というエラーが出てうまくいきません。
てっきりDBが壊れたかと思ったのですが、クエリーアナライザからの
SQL文は正常に実行できます。
可能ならばDBを停止しないで復旧させたいのですが、何か方法は
ありませんでしょうか?
>>317 DBCC CHECKIDENT
詳しくはマニュアル見てくれ
>>320 DECLARE @VAR VARCHAR(100) --適当に変えること
SELECT @VAR=子CASEの中身
SELECT
CASE WHEN @VAR IS NULL THEN 'AHO'
ELSE @VAR END AS HOGE
FROM HOGE;
一般的には↑だろうけど、
この場合に限ってはINSULL()関数を使って書き直せるだろう
スマン、INSULL()じゃないISNULL()だ
324 :
320:03/12/24 12:26 ID:???
325 :
NAME IS NULL:03/12/24 22:21 ID:+/2I63y6
フィールドのデフォルト句を変更するSQLってどう書くの?
327 :
NAME IS NULL:03/12/25 12:07 ID:MwuYtnxS
教えてください
SQLServer6.5×5台のリンクサーバを作成(テーブル構成は同じ)
それぞれからSELECTしたものを別テーブルにINSERTしてるんですが、
ADOで同じことをしたときのほうが3倍くらい早いです。
どこかの雑誌でリンクサーバは遅いっていう記事があったそうですが、
自分で見たわけではありません。
リンクサーバは遅いのでしょうか?
リアルタイムでテーブルを参照するような処理はADOで作ったほうがいいのでしょうか?
>別テーブルにINSERTしてるんですが、
同じサーバの別テーブルなのか、サーバも別なのか?
>ADOで同じことをしたときのほうが3倍くらい早いです。
「同じ事」ってなんだよ?
>それぞれからSELECTしたものを別テーブルにINSERTしてる
時には何を使ってんだ?
>リンクサーバは遅いのでしょうか?
直結するよりは遅くなるに決まってる。
>リアルタイムでテーブルを参照
意味わかんね。
330 :
NAME IS NULL:03/12/26 19:37 ID:ejMHggoU
SQL Server 6.5でバックアップしたファイルは、
SQL Server 2000でrestoreできないのでしょうか?
331 :
NAME IS NULL:03/12/27 17:21 ID:nTUWrhLL
日付型データの保持について
ある日付型データをDB内では、DATETIME型で保持しています。
しかしクライアントの表示画面では元号で表示する必要があります。
(質問1)
DATETIME型 にFormatをかける際に、
改元日を考慮したくないのですがどうすればよいでしょうか
例) 1989/1/1 → 平成元年 (昭和64年としたくない)
(質問2)
昔の元号 (元禄など) をひっぱってくるには良い方法はありますか
別に元号テーブルを作成して照らしあわすか
フィールドを文字型にするかで迷っています
(フィールドを文字型にする方が楽だが、
計算の際に日付型にしないといけないので同じ気がする)
どっちがいいのでしょうか?
332 :
NAME IS NULL:03/12/27 17:31 ID:nTUWrhLL
なお、今は改元日を考慮しない処理では、
年&1月1日に変換してFormatしています
また明治以前のデータは、ごくまれなので
別テーブルを参照していちいち参照するのは無駄な気がしています
元号対応の組込みツールとかってないのですかね
333 :
NAME IS NULL:03/12/27 20:58 ID:kWpGIHtf
たのむ!!
デフォルト句を変更するDDLを教えてくれ!!!
334 :
NAME IS NULL:03/12/27 21:42 ID:kWpGIHtf
SQLServerはテーブルで管理しているみたいで
行レベルロックをやりまくると、管理しているテーブルの
許容量を超えてしまい、行レベルロックからテーブルロックに
なっちゃうと聞いたのですが、これってマジっすか??
>>334 滅茶苦茶メモリを食うロックをしなければそうはならないと
今売ってるDBマガジンに書かれてたような気が。
337 :
NAME IS NULL:03/12/28 06:17 ID:clRenwUm
>>334 ロックのエスカレーションっていうやつです。
(行→ページ→テーブルロック)
エスカレーションの閾値の設定とかできないし、
デッドロックの原因の1つになるし、とってもやっかいなものです。
解決方法として、初めからTABLOCKXをするとか
トランザクションをこまめにきるとかしないだめでした。
>>336 以外とすぐにエスカレーションします・・・。
340 :
NAME IS NULL:03/12/29 15:34 ID:8/95B3uV
>>339 そーゆー状況になる設計それともMSの?
>>340 337の設計がアホという意味。SQL鯖の設計のことではない
所詮SQL鯖って小さい環境用なんだよね
>>342 最近はOracleが小さい環境で使ってもらおうと必死だねw
今までは小さい環境を軽視してたのに、売上があまりにも落ち込んだから
方向転換したのかな?もっと激安になればね(ry
煽り合いは専用スレがあるんだからそこでやれ
>342
Accessより大きくOracleより小さい環境にはベストマッチって事かもよ
うちの場合、プロジェクトの早期から参画してたM$混猿の設計が
ぐだぐだで本当に大変なことになりました。。。
>342
つーか価格差を見りゃそれくらい予想付かんか?
348 :
NAME IS NULL:03/12/31 13:21 ID:45tH18/u
>>346 具体的には何をやらかしてくれたのさ?
つか、誰も止める香具師は居なかったの?
349 :
NAME IS NULL:04/01/01 21:10 ID:BhYKvJrw
350 :
SQL 初心者:04/01/01 21:16 ID:rCRRhUyq
SQLサーバー 初心者です。
サーバーに、テーブルを作成して、リンクテーブルでACCESS 2000 SP2
を動かそうとしています。
ACCESSの追加貼り付けが、できないのですが。
351 :
NAME IS NULL:04/01/02 00:32 ID:mdzOBQVK
Kさん 好循環 Aさん 悪循環
(健康体) (喘息)
1.(神が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある 体力がなくなる
3.K A 行動力、
五感(嗅覚)が鈍り感性が変化する
4.K&A 神は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし A アトピーになる
6.K 正常な感性 A 外に出なくなりさらに異常な感性になる
7.K 正常な人間 A 異常な人間(レッテル)
8.K&A 死
352 :
NAME IS NULL:04/01/02 00:32 ID:mdzOBQVK
8.K&A 死
9.K&A 来世
10.K&A 神は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 神が喘息であるかないかを決める
12.K 喘息でない A 喘息である
13.K&A 1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。
目安としてグランドを10週くらい。
あとはウォーキング
2.3時間を目安にウインドーショッピングや本屋めぐり
353 :
NAME IS NULL:04/01/02 20:42 ID:fEnsN8pJ
ORACLEの
dba_users
dba_tables
v$session
にあたるものってSQLServerでは何でしょうか?
t-sqlのストアドプロシージャ内で定数を定義する方法はありますか?
vbのconstみたいなやつです。
age
XPにAccessドライバデフォであるが、SQLでcreate tableやったらエラーでんだが
Access入ってないとドライバだけあってもデータベース操作できねえ?
adp使え
SQLServer同士のリンクサーバーってテーブルとビューしかリンクできないんですか?
360 :
sage:04/01/07 12:08 ID:YG/+fCEk
nvarchar型の変数に 123,456,789 という値があった場合、
これをtable変数に
123
456
789
と変換したいのですが、どのようにすればよいでしょうか?
ご教授お願いします (ぺこり
361 :
教えてください:04/01/07 20:32 ID:oB//F49U
排他ロックの確認ってどうやるんでしょう?
VBでADO(OLE DBプロバイダ)使ってMSDEに接続してるんですが、
Aクライアントでレコード1を排他ロックで操作しているときに、Bクライアントでレコード1が排他ロックされているかを確認したいんです。
1--rs.open strcnn,cn,adOpenDynamic, adLockPessimistic
2--if rs.eof then
でチェックしているんですが、2行目のrs.eofの判断に10秒以上かかります。
宜しくお願いしますm(__)m
排他ロックならそもそもレコードセットのOpen自体が出来ないはず。
判断に10秒かかってるのでわなくて待ち状態になっているだけでわ?
クライアントツール持ってるなら、クエリアナライザを2つ開いて実行すればよろし
363 :
教えてください:04/01/07 23:08 ID:JkzBNx1p
>>362 ありがとうございます。
たぶん待ち状態なんでしょう。
排他ロックのかかってるレコードはopenさせたくないんですが・・・
直ぐに判断できるクエリーないんでしょうか?
364 :
48*8:04/01/08 04:35 ID:3FQ9TQU5
Kさん 好循環 Aさん 悪循環 <日本> 完成版
(健康体) (喘息)
1.(天国・霊界が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある 体力がなくなる
3.K 変化なし A 行動力、五感(嗅覚)が鈍り感性が変化する。
4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし A アトピーになる
6.K 正常な感性 A 外に出なくなりさらに異常な感性になる。
7.K 正常な人間 A 異常な人間(レッテル)
8.K&A 死 9.K&A 来世
10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない A 喘息である
13.K&A 1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。 目安としてグランドを10週くらい。
あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり
絶対に直す方法:
よく海外に行ってアトピーが治る話を聞くが、基本的に日本の中のことだけなので、
海外に行くとほとんどの場合体力をつけると治る。 日本の中であっても、体力をつ
けると治るはずだが、 様々な理由により、霊界の存在がばれてしまい、 この失態が明
るみになるので、治さないようにしている。よって、絶対にアトピーを治すには、 海外
に行き体力をつける。
http://life.2ch.net/test/read.cgi/atopi/1035703616/l50を参照
365 :
NAME IS NULL:04/01/09 11:00 ID:Dj5F0mmv
このスレ全体および検索サイトにていろいろ調査してみたのですが、
解決できなかったため、ご存じの方がいらっしゃいましたら、お教え下さい。
遠隔にあるSQLサーバ(バージョン7.0)のデータベースのバックアップ作業です。
手段として、DOS画面からtelnetコマンドを実行して、サーバに入り、
コマンド投入をして、データベースのバックアップファイルを作成したいです。
(バックアップファイルが完成したらFTPが出来るフォルダに移動して手元に
持ってこようと計画しています。)
telnetでサーバに入り、isqlコマンドでログインする所までは把握できました。
・・・が、実際にバックアップファイルを実行してくれるコマンドが分からないです。
どなたかお教え下さい。よろしくお願い申し上げます。
>>365 実際にやった事はない&SQLサーバ7.0を使った事ありませんが。
isqlユーティリティを使うと、Transact-SQLステートメント、
システムプロシージャ、およびスクリプトファイルを入力
出来るっぽいです。
Transact-SQLに、BACKUP DATABASE ステートメント
ってのがあるので、これを使えば良いかと。
詳しくは、BooksOnline見て。
367 :
NAME IS NULL:04/01/10 04:04 ID:yivubeLm
テーブル内で数式から計算結果をセットする方法ってあるんでしょうか?
通常、数式から計算結果を出す場合は、「exec」を使って
declare @CalcString varchar(50)
select @CalcString = '1+2+3+4'
exec('select ' + @CalcString)
とすると計算結果の「10」が返ってきますが、
create table AAA(式 varchar(50) not null, 数値 int null)
insert into AAA(式) values('3+4')
で
update AAA
set 数値 = exec('select ' + 式)
を実行してもエラーが返ってくるのです。
どなたかご教授お願いします。
368 :
NAME IS NULL:04/01/10 04:07 ID:yivubeLm
>>365 sqlmaintって2000からだっけ?
369 :
NAME IS NULL:04/01/10 10:23 ID:l4wgLYoU
370 :
367:04/01/11 15:24 ID:D6U2Pv7p
とりあえず、カーソル使って1件づつ更新することにしました。
でも1万件更新するのに1分近くかかります。
20秒ぐらいで終わって欲しいのに...
371 :
070-229落ちた:04/01/11 16:10 ID:CRQFEbL3
MCSE板から来ました。
070-229(SQL Server 2000 DBの設計と実装)の問題の質問でつ。
クエリのパフォーマンスが下がった時の処置として、
update statistics と DBCC REINDEXの使い分ける状況ってなんでしょう
3問くらいあったのを全部update statisticsと答えて玉砕しました
赤本見てもわからない〜
来週リベンジするのでその前に教えてちょ
372 :
東芝不買運動:04/01/11 16:20 ID:+HnZycC2
373 :
NAME IS NULL:04/01/12 03:02 ID:Ru02ZAxd
SQL Server 6.5 の Books Online を入手する方法ってありますか?
もしくは、SQL Server 6.5 の CDROMはあるので、WinXPproで見る方法はありますか?
>>367,370
試してないけどこれでどう?
update AAA
from AAA,(select 式 as B1) as BBB
set 数値 = BBB.B1
376 :
367:04/01/12 20:29 ID:z2H6BkUs
>>375 試してみる前に構文エラーでした。
そもそも「select 式」という形からは文字列しか返ってこないので
ダメなんですよ。
わざわざお答えいただいたのに申し訳ありません。m(_ _)m ペコリ
>>367 すまん、数式がテーブルの中に入ってるのか。
update一発じゃ無理そうだな。
しかし、その数式はユーザーが直接入力するの?
dbo権限で動いてるところに"DROP TABLE"なんて入ってたりしたら
しゃれにならない事態になるわけだが。
そうでなくても文法エラーがあったりすると厄介そう。
378 :
367:04/01/12 21:51 ID:z2H6BkUs
>>377 やはりupdate一発というのは無理なのでしょうか?
半分あきらめてますけどね。
数式に使える単語には制限をかけているので、まー動かないことは
あってもそう深刻な事態になることはないでしょう。
文法も一応チェックかけてるし、まぁ大丈夫!かな。うん(^^;
379 :
エムイー:04/01/13 15:57 ID:fMirv1/j
SQL Server 6.5のテーブルに新たにbit型フィールドを追加したいのですが
ALTER TABLE table add COLUMN column_name
で追加を試みたのですがnot null の型は追加できないと怒られてしまいます。
何か他の方法はありますか?
380 :
NAME IS NULL :04/01/13 22:57 ID:q+rrPAgZ
>>379 次の2通りの方法が考えられる。
1.とりあえずnullの型で追加して、その後データを更新してから
(bit型なら0とか)でnot nullの型に変更する。
2.データを別テーブルに退避してnot nullの型でフィールドを追加する。
>>378 update一発じゃなくても
各レコード毎のキー情報と数式の計算結果を
テンポラリテーブルに入れてから
テンポラリテーブルと目的のテーブルをJOINしてUPDATEすると
ちょっとは早くなるかも。
勘なので早くならなかったらごめん。
382 :
378:04/01/15 03:24 ID:TxC59GeF
>>381 > 各レコード毎のキー情報と数式の計算結果を
> テンポラリテーブルに入れてから
そのテンポラリテーブルに入れる処理自体が1件ずつしかできなかったり
します。
数式を値に変更するためには私の知る限りEXECUTE関数か、
ストアドプロシージャ「sp_executesql」しかなくって
これだと1件ずつしか処理できないんですよね。
でも1件ずつ処理するにしてもやり方次第では今より若干早くなるかも。
ありがとうございました。
ちょっと試してみます。
oracleとsql serverのユーザーの概念の違いをわかりやすく説明している
サイトはありませんか?
385 :
371:04/01/19 18:14 ID:QKrv9wRp
今日、二度目の70-229受験で合格しました。
パフォーマンス関連が弱いとわかったので、SQL鯖の入門書を読んで、
PASS-Jを見直しました。
>>374 さんありがとうございました。
MSDEは性能じゃなくてライセンス数の問題があるんだよ。
決算期ごとにデータベースを変更している
会社のDBマスタで(キーなし)
会社コード_____DB名_____決算期
______1______DB01_________1
______1______DB02_________2
______1______DB03_________3
______2______DB10_________3
______2______DB11_________4
______2______DB12_________5
から
会社コード_____DB名_____決算期
______1______DB03_________3
______2______DB12_________5
のように最新の決算期に対応するレコードを
抽出する方法はどうするのでしょう?
データベースの変更ってなんだよ。
(いや、知ってるけどさ・・・)
390 :
378:04/01/20 20:25 ID:Dw0+LfuC
select *
from DBマスタ A
join (select 会社コード,max(決算期) as Max決算期 from DBマスタ
group by 会社コード) B on A.会社コード = B.会社コード and 決算期 = Max決算期
でいかがでしょうか?
391 :
378:04/01/20 20:40 ID:Dw0+LfuC
なんか違うっぽい。
こっちかな?
declare @SQLString nvarchar(200),
@CompanyCode nvarchar(20),
@DBName nvarchar(20)
declare cur_最新会社 cursor FORWARD_ONLY READ_ONLY for
select 会社コード,DB名
from DBマスタ A
join (select 会社コード,max(決算期) as Max決算期 from DBマスタ
group by 会社コード) B on A.会社コード = B.会社コード and 決算期 = Max決算期
open cur_最新会社
fetch cur_最新会社 into @CompanyCode,@DBName
while ( @@fetch_status = 0 )
begin
select @SQLString = N'union select * from ' + @DBName + '..テーブル where 会社コード = '
+ quotename(CompanyCode,'''')
fetch cur_最新会社 into @CompanyCode,@DBName
end
execute(@SQLString)
392 :
378:04/01/20 20:48 ID:Dw0+LfuC
頭の「union」切ってなかった
最後の行のexecute(@SQLString)の直前に
select @SQLString = right(@SQLString,len(@SQLString)-5)
を入れてください。
393 :
378:04/01/20 20:58 ID:Dw0+LfuC
ガーン。
カーソル解放するの忘れてた。
最後にこれつけてください。
close cur_最新会社
deallocate cur_最新会社
連続カキコすみませんでした。
てか、カーソルなんか使わなくてもできるけど
select * from DBマスタ
where (会社コード,決算期) in
(select 会社コード,max(決算期) from DBマスタgroup by 会社コード)
でどうかな?
(´-`).。oO(マルポしてる人に一生懸命回答考えてる378さんに心打たれた。。。)
397 :
NAME IS NULL:04/01/20 22:46 ID:A+EWqiMs
基本的に390でOKだろ。
398 :
378:04/01/20 23:35 ID:SSOk3VI/
>396
そんな書き方もあるんですね。新発見!感謝です。(^ー^)
>397
そうですよね。深読みしすぎました。OTL
399 :
NAME IS NULL:04/01/21 03:23 ID:zBiV2zk6
SQL Server 2000のDBに格納されているDBを、CSV形式で取り出したいと思っています。
クエリアナライザでSQL文を書いたファイルを開いて実行し、グリッドの全てをCSV形式で
保存すれば、最も欲しい形式でCSVファイルが得られます(カンマ区切り、カラム後半部の
データが入っていない部分は切り詰められる)。
同様な出力をコマンドプロンプトから実行して得ようと場合、皆様どうされていますか?
bcpユーティリティの利用した場合、osqlユーティリティの様にSQL文を書いたファイルを
読み込んで結果を出力することができないようで、コマンドラインオプションにSQL文を
書き連ねる必要があったり、fmtファイルをいちいち用意しないと対話形式になったり
するので、臨機応変にWHERE句や拾うカラムを変える場合は不便かな?と感じてます。
逆にosqlユーティティで「-t,」オプションを付与した場合、カンマ区切りの結果は
得られますが、その場合クエリアナライザやbcpと違ってカラム後半の空白部分が
出力されてしまいますね。LTRIMとか使ってみたんですが、変化ないようだし。
よい方法があれば教えてください。
あるアプリが突然 SQL Server 2000 に 接続できなくなりました。
SQL Server Enterprise Manager で確認しようとしたところ、
該当データベースのアイコン(通常なら黄色のドラム缶のような)が
グレーになっていて、<未確認> と表示されています。マウスの右クリック
でプロパティを見ようとしましたが、ポップアップメニューに
プロパティがなく見られませんでした。
SQL Server のログを見てみたところ、
UDOPN 物理デバイス C:\SERVER\DATA\DB_data.mdf を作成している時
または開いている時にオペレーティングシステムエラー 32(プロセスは
アクセスできません。別のプロセスが使用中です。)が発生しました。
と、
FCB::OPEN FAILED 仮想デバイス番号(VDN) 1 のデバイス
C:\SERVER\DATA\DB_data.mdf を開けませんでした。
とあります。
なぜ↑が発生したのが原因がわかりません。原因がわかる方、データベース
の復旧方法を御存知の方、アドバイスして頂けないでしょうか?
よろしくお願いします。
401 :
378:04/01/22 00:37 ID:s+AzUpVl
>396
動かないし...OTL
ひょっとしてオラなら動くのだろうか?
>399
osqlで一時的にテーブル作成してbcpではき出すのではダメですか?
>400
repairdbでDBを削除してからバックアップを復元するの一般的かなぁ?
ググって調べるのが間違いが無くてよいと思いますが。
原因の特定に私にはムリぽ。
>>386 そういうこと。
ただしAccessは壊れやすい。
データ削除しても残る(最適化する必要がある)
使えるならSQLおすすめ。
>>387 機能制限で5人までだよ。
しったかぶりしないように。
403 :
399:04/01/22 03:48 ID:???
> >399
> osqlで一時的にテーブル作成してbcpではき出すのではダメですか?
ああ、その手がありますね。
ただ、お客さんのところにあるデータベースなので、テンポラリでもテーブルを
作ったりするのは実はあまりしたくないんです…。うーん…。
ストアドを作成するのに期首年月日から
期末年月日を計算して挿入したいのですが
どうすればよいでしょうか?
期首年月日 期末年月日
'2004 4 1' → '2003 331'
DTEADD()を使おうと
datetimeに変換しようとしたらエラーが出て先に進めません。
宜しくお願いします。
>386
>適切に最適化された Access データベース (.mdb) は最大 255 人までの同時アクセスに対応できます
「適切に最適化」「同時アクセス」という言葉の捉え方に注意でつ。
参照だけなら大丈夫かもしれんが・・・
同時更新がありうる環境なら、俺は絶対使わないでつ。
MDB共有は運用面で楽なのは確かだけど、そのメリット以上にDB破損のリスクが高い。
マルチユーザ環境でのAccessの動作は信用しない方が良いと思う。(あくまで経験則)
>402
そうだっけ?
過去の雑誌で128本で繋いでのパフォーマンステストやっていた記憶が・・・
ひょっとしてバージョン上がって変わった?
406 :
378:04/01/22 21:26 ID:LBD5WZK8
>403
グローバル一時テーブルならどうでしょう?
xp_cmdshellでbcp実行ってことになると思うけど。
>>405 ・ADO(又はDAO)環境下で語られてきた様々な事柄は ADO.NETにも相通じるのか?
・同じく2way systemで語られてきた事柄は 3way systemにも相通じるのか?
・そもそもISAMライブラリの類な Access(と言うか Jet DBE)と、かたや独立した
サービスであるSQL Server2000 / MSDEを同じ土俵で比較することに対する
違和感とか無いのか?
>違和感とか無いのか?
それはM$に言うべきかと
>>404 スペースがまずいのでわ?
CAST('20040401' AS datetime)
>>399 isqlw.exe(クエリアナライザ)にコマンドラインパラメータを与えて
isql.exe風に使うのは駄目?
411 :
404:04/01/23 09:06 ID:???
客先のデータベースの仕様で
変えちゃいけないんです。
'20030401'とかならよかったんですけど。
412 :
NAME IS NULL:04/01/23 11:52 ID:cXiQyUAq
クエリアナライザで、数値の項目の表示を
右揃えにしたいんだけど…。
STRでキャストするとか
414 :
378:04/01/23 21:48 ID:yuRNMIDd
replace関数使ってスペースを0に変換汁
415 :
404:04/01/24 13:16 ID:???
@date = CONVERT(CHAR,DATEADD(d,-1,DATEADD(YYYY,1,replace(sDateKisyu,' ','0'))),20)
SUBSTRING(@date,1,4) + (CASE WHEN SUBSTRING(@date,6,1) = '0' THEN space(1) ELSE SUBSTRING(@date,6,1) END ) +
SUBSTRING(@date,7,1) + (CASE WHEN SUBSTRING(@date,9,1) = '0' THEN space(1) ELSE SUBSTRING(@date,9,1) END ) +
SUBSTRING(@date,10,1)
で一応'2003 4 1'は'2004 331'になったのですがスペースがなぜか全角。
これを書き込むストアドで型が違うとはじかれます。
416 :
378:04/01/24 16:07 ID:EAnOS+PV
>415
その構文であってます。
私の環境では問題ありませんでした。
なんで全角スペースが入ってくるのかな?
あと参考までに私ならこう書きます。
@date = CONVERT(CHAR(8),DATEADD(day,-1,DATEADD(year,1,replace(sDateKisyu,' ','0'))),112)
SUBSTRING(@date,1,4) + REPLACE(SUBSTRING(@date,5,1),'0',' ') + SUBSTRING(@date,6,1) +
REPLACE(SUBSTRING(@date,7,1),'0',' ') + SUBSTRING(@date,8,1)
417 :
NAME IS NULL:04/01/25 02:56 ID:ZUbpceFV
>>412 接続オプションかなんかで、右揃えという項目があったような気がするぞ。
418 :
NAME IS NULL:04/01/26 00:14 ID:la5fi1L2
EnterpriseManagerでバックアップとったものと
ADPでつないで[ツール]-[データベースユーティリティ]-[バックアップ]でとったものは
互換性があるのでしょうか?
419 :
NAME IS NULL:04/01/26 00:57 ID:y082M5Ab
SQL Server 6.5を使ってます。
インデックスの断片化の解消方法として、DBCC DBREINDEXがありますが、
ディスク上のファイル断片化の解消方法は、あるのでしょうか?
あと、バックアップを取って復元したら、インデックスの断片化、ディスク上の
ファイル断片化は、解消されますでしょうか?
ご存知の方がいらっしゃいましたら、ご教授下さい。
ディスク上のファイル断片化の解消方法
デフラグ
>>419 デフラグしたらDBが壊れた経験があるからデフラグだけは薦めない。
422 :
419:04/01/26 01:19 ID:y082M5Ab
レスありがとうございます。
>>420 デフラグするには、別途ソフトが必要になるので、SQL Serverの
機能として存在すれば使いたいなと思いました。
>>421 それも気になってました。
もし良ければ、DBを起動/停止どちらの状態でデフラグを
実施したのか教えて頂けますか?
423 :
421:04/01/26 01:47 ID:???
>>422 > それも気になってました。
> もし良ければ、DBを起動/停止どちらの状態でデフラグを
> 実施したのか教えて頂けますか?
そういえば起動状態だった。でもDBが管理しているページをばらばらに
してしまうのだから停止でも同じではないかと知ったかぶり。
>>423 6.5ってことは、OSはNT4.0Serverで、デフラグ用ソフトはDiskeeper辺りかな?
漏れの職場にまだその組み合わせで使ってるのがあるけど、SQLサーバを
停止しておけば、デフラグかけても大丈夫だよ。
バックアップ・復元する時に、同じデータファイルにDBを戻すつもりであれば、
復元前にデフラグしておかないと、断片化されたままのファイルに戻すことに
なるので注意。データ領域については、断片化が解消されるはず。
よって、バックアップ取得->DB停止->デフラグ->復元->DBREINDEXという
順序でやるのがよろしいかと。
425 :
421:04/01/26 04:52 ID:???
>>424 >停止しておけば、デフラグかけても大丈夫だよ。
ということは、バックアップは念のため必要だとしても
復元はしなくてもよいということですかね?
426 :
NAME IS NULL:04/01/26 21:31 ID:4Liyz/N6
DBCC SHRINKDATABASE とかじゃ?
>>425 デフラグは、ディスク上のデータを並び替えることで、ファイルの断片化を解消させる。
その結果、ディスク上のデータが物理的に連続した状態となる。
そうするとディスクアクセスを減らせるので、アクセス速度を僅かだが向上させられる。
但しデフラグで効果を得られるようであれば、ファイルの配置やメモリの追加を
考えたほうがよいだろう。
全体バックアップの復元は、復元の際にデータファイル内のデータブロック類を
可能な限りファイルの前方から使ってデータを戻していく。
その結果、データファイル内でデータがキーの並びで連続して並ぶ。
但しトランザクションログを使ったリストア+リカバリを行うと、リストアによって
せっかく並べられたデータの並びがリカバリ時に崩れるので、それが気になるなら
直前に全体バックアップし、それを復元して操作可能状態にする。
>>426 SHRINKDATABASEは、データファイル末尾の使われていない領域を切り捨てるだけ。
使い込まれた部分が最適化されるわけではない。
428 :
419:04/01/27 01:37 ID:kMh1Xfpi
419です。
>>424 おっしゃる通り、NT4.0Server+SQLServer6.5です。
デフラグ用ソフトを購入出来る状況ではないので、SQL Serverの機能で実施
出来ないか探していました。
>>427 >>全体バックアップの復元は、復元の際にデータファイル内のデータブロック類を
>>可能な限りファイルの前方から使ってデータを戻していく。
>>その結果、データファイル内でデータがキーの並びで連続して並ぶ。
なるほど、全体バックアップの復元を行うとある程度は解消出来るのですね。
色々と調べたのですが、この辺りの情報を入手する事が出来ませんでした。
もし良ければ、情報入手元(本、ネット、BooksOnline、検証した等)を教えて
頂けますか?
今、試しているのは、バックアップ復元前と後で、インデックスの断片化が
解消されるかどうかです。
とりあえず、全テーブルに対して、インデックスの断片化を調べる要求を投げて
きたので、明日検証したいと思ってます。
429 :
421:04/01/27 02:24 ID:???
>>427 詳しい解説ありがとうございます。勉強になりました。
430 :
NAME IS NULL:04/01/27 17:37 ID:DJH+2hbL
SQL Serverって環境(サーバスペック)によって結果が違うことない?
あるよ。
432 :
NAME IS NULL:04/01/27 23:42 ID:1MC6kPF8
VC++ 6.0 でアプリを作るのだけれど、SQL鯖との API は何を使うのが良かんべえ?
433 :
NAME IS NULL:04/01/28 15:54 ID:MLSHDrAP
DB_1からDB_2にウィザードでデータのエクスポートをする際に
”SQLServer7.0間でのデータベースオブジェクトとデータの転送”
を選択するとストアドのインポートやエクスポートが出来ますが、
その際に元のDBから転送されないストアドがいくつかあります。
dt_addtosourcecontrol, dt_adduserobject, dt_adduserobject_vcs, ・・・
の dt_xxx という名前のストアドが転送されません。
これはほっておいてもいいのでしょうか?
434 :
NAME IS NULL:04/01/28 16:23 ID:MLSHDrAP
もうひとつ質問です。
[OSのVER]:windows2000
[SQLServerのVER]:SQLサーバー7.0
データベース名 : db1
ファイル名 : db1_Data
をバックアップして、db1は削除せずに データベース名をdb2として復元すると
データベース名 : db2
ファイル名 : db1_Data
というようにファイル名がdb1と同じになるようですがこれで正しいのでしょうか?
同じファイル名が複数になると何らかの問題が出るのでしょうか?
>>432 普通にODBCだと思うが・・・そういうことじゃない?
>>434 db2_Dataって名前のファイルは無いの?
場所が違うとか。
437 :
NAME IS NULL:04/01/28 22:23 ID:zMSeOuu6
>>435 DB-Library for C, Embedded SQL for C, ADO, OLE DB, ODBC と色々あるんだけど
どれを使ったら良いのかと。。。
ADO は、VB で使うのは良いけど、VC++ だと何かイマイチ。
ODBC ですかねぇ〜。
>>437 ADOをVC++で使ってもメリット感じないねぇ。
Embeddedは以外といけるかも。
>>438 ヤパーリ、ADO & VC++ は無理がありますよねぇ〜。
Embedded は、MSが使うなゴルァ状態ですから先々を考えると・・・
>>439 まぁ、先を考えるとね(w
でも、ODBCより速くなるんでしょ?
(ODBC以外はOraのProCしか使ったことが無かったりする洩れ)
>>440 SQL鯖のODBCは速いみたいですけどね。
Oracle なら OCI で決まりなんすけど・・・
ODBC vs ADO (MSご推奨) で検討してみます。
>>434 ファイル名には論理ファイル名と物理ファイル名があって
論理ファイル名は同じファイル名が許されたと思います。
>>441 OLEDB の方が速いって聞いたことあるけど
444 :
NAME IS NULL:04/01/29 11:08 ID:2tMkH5SB
どこかで論理ファイル名も重なるとよくないというような話を聞いた気がするのですが、
大丈夫なのかな
>>443 HELPを見ると確かに早いと書いてありますが、その差はわずかなもので
扱い安さでODBCのほうがよいと書いてありますね。
>>444 それは初耳です。
私の経験上論理ファイル名が重なって問題が起きたことはありません。
446 :
441:04/01/29 20:44 ID:???
>>443 OLE DB は、COM が理解出来てないと難しそうですね。
それにサンプル・コードも少ないし。
447 :
NAME IS NULL:04/01/30 03:00 ID:aZ7xYiqH
もし知っている方がいらしたらご教授願いたいのですが、
リモートファイルをテーブルに一括挿入するのに、
ODBC経由でUNCを使わずに行う方法はないでしょうか?
というのも、bcpやbulk insertではUNCパス指定が必要となりますが
Enterprise Managerのインポートでは送信側でローカルパスを指定して
できるので、これをエミュレートする方法があれば・・・と思いまして。
448 :
441:04/01/30 23:02 ID:???
結局、ODBC API で逝くことに決めました。
VC++ だけど、中身はコテコテのC言語のアプリには ADO は激しく合わない。
それに、ADO (OLE DB) の技術的寿命は短そう。 (COM の終焉?)
VC++ の #import ディレクティブもキモイ
ODBC は消えて無くなりそうだけど、結構しぶとく残りそう。w
>>448 ODBCは過去の互換性のためだけに残される方針のようだぞ。
案外しぶとく残るかもしれないが、だが次期OSではADO+とかいうものに
置き換わり、標準でODBCは入らないとか。
ゆうかWindowsでこてこてのCでプログラミングを作るという事が
激しく合わないわけで。
>>449 >だが次期OSではADO+とかいうものに
>置き換わり、標準でODBCは入らないとか。
ソースきぼんぬ。チンチン (AA略
ADO.Net は何処へ?
つか、Win32 API なんてコテコテのCだと思うが。。
WIN16はpascal風味だったような微かな記憶(←捏造?)
そういやPASCALだったねえ。
Cの可変長引数とPASCALの利点を組み合わせて今に至る、か?
454 :
53:04/02/02 17:16 ID:mG/dB7WE
Windows2000ServerSP4 にMSDE2000ReleseA を使ってます。
Windows2000ProのクライアントからODBC接続しようとしたら
次のようなエラーが出てしまいました。
原因もしくは対処方法はわかるでしょうか?
-----------------------------------------------------------------------------------------------------------------
接続できませんでした。
SQLState: '01000'
SQLServer エラー:87
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]ConnectionOpen(gethostbyname()())
接続できませんでした。
SQLState: '08001'
SQLServer エラー:11
[Microsoft][ODBC SQL Server Driver][TCP/IP Sockets]一般的なネットワークエラーです。ネットワークのマニュアルを調べてください。
-----------------------------------------------------------------------------------------------------------------
一つ気になるのはクライアントのMDACのバージョンが2.5だった事です。
これが原因の可能性はあるでしょうか?
>>450 ODBCのくだりは分からんが、
Whidbeyをインストールしたら
「Whidbey\SDK\v1.2\QuickStart\howto\doc\adoplus」
なんていうディレクトリがあったy。
中身は .aspx ばっかり。うーむ。
>>454 サーバ名が見つからないってエラーだな。
>>457 同意だな。
ということで
>>454よ。ODBC接続しようとしているクライアントはDNSなりhostsなりで
サーバの名前解決ができる状態になっているか?
459 :
454:04/02/03 09:18 ID:opXqtSa0
サーバーは見れます。
サーバー名でIPも引けました
その後ですが一応hostsファイルにも書いてみましたけど変わりありませんでした。
全データのエラーリストからダブった物を除外して
エラーリストを作り直すのですが
元データ
商品 科目 エラーNO
1 1 1
1 2 1
1 3 1
2 1 2
3 1 2
4 1 2
エラーNO 1:だぶる商品Noを除外
2:だぶる科目Noを除外
出力データ
商品 科目 エラーNO
1 3 1
4 1 2
こんな感じに出力したいのですがどのようにすれば
よいでしょうか。
463 :
454:04/02/04 01:31 ID:u6F6Mlyv
解決したので報告です。
まず現象が出ていたクライアントは
Windows2000 Professional
SPは不明ですがMDACのバージョンは2.5でした。
※Windows2000のSPによってMDAC2.5でも微妙にバージョンが違う
詳しくはこちら →
http://www.microsoft.com/japan/msdn/data/download/mdac/manifest_intro.asp Internetには完全につながっていない環境で運用されていたみたいでWindowsUpdateも恐らくまったくおこなわれていないと思われます。
で
MDAC2.7SP1Refresh を入れてみたら問題は解決しました。
もっと低いバージョン(2.6とか)から入れてみてどこで解決している問題か
突き止めても良かったのですが時間がなかったので今回はあきらめました。
ネットワークとかの問題ではなかったです。
>>463 MDACはなぁ。やらしいトラブルの元なんだよなぁ。
漏れも以前、こういうネットワーク系のエラーではなかったが、SQL鯖に特定のSQLを
投げるとダンマリになってしまうという現象にハマったことがあったよ。2.6の時だったか?
そん時の解決法は、MDACのバージョンを鯖とクライアントで合わせる、と。
なんだそりゃと思ったよ。
今まで動いていたアプリケーションがWindows Updateの結果動作しなくなった事も
何度かあるし、ADODB使ったVBアプリのデバッグができなくなったりと、あまりいい
思い出が無い。
そういやまたMDACのパッチが出たけど、だれか人柱になってみておくれ(w
465 :
NAME IS NULL:04/02/04 15:45 ID:IdTYgpiu
bcpツールを使用してデータを外部ファイルへ出力したいんだけど、
カラム名を同時に出力させることはできますか?
何らかのオプションをつければ大丈夫ですか?
>>465 予めカラム名を書いたファイルを作っておいて
copyコマンドでくっつければいいじゃない
DTSでエクセルにエクスポートしる
自動的にカラム名つくぞ
468 :
NAME IS NULL:04/02/05 13:55 ID:qyxB+XUK
SLLServer2000のデタッチ・アタッチについて教えてください。
データベースのファイル名を変更するために、一度デタッチします。
その後、ファイル名を変更してアタッチするのですが、
EnterpriseManagerでmdfファイルを指定すると、
CurrentFile(s)Location に昔のパスが出てきます。
これを新しいファイル名のパスに変更しようとしているのですが、
べりファイをすると、元に戻ってしまいます。
どのようにすればいいのか、ご存知の方教えてください。
469 :
NAME IS NULL:04/02/05 19:57 ID:qyxB+XUK
素人の質問ですまないんだけど、ベンダー指定のSQLスクリプトを
クエリーアナライザーで実行したら次のようなメッセージが出た。
One or more logins (T1 or 'T2) exists.
Please check, why they exist and delete them manually.
Restart this script afterwards.
If the script stops with this message, no action was taken.
どうも、何かがログインしてるみたいで、それを消さないといけないんだけど、
どうやればいいんでつか?
そのスクリプトが出してるメッセージじゃないの?
中身嫁。
471 :
NAME IS NULL:04/02/05 20:16 ID:qyxB+XUK
そうだよ、スクリプトが出してるメッセージ。
ようは、ログインしているユーザーを、探してログアウトさせないと
いけないのかな?どうやるの?
ログインしている、じゃなくてSQL Serverのlogin IDのことだべ。
473 :
NAME IS NULL:04/02/05 20:45 ID:qyxB+XUK
loginIDを消すわけ?どうやって?
そのくらい調べてちょんまぎ。
475 :
NAME IS NULL:04/02/05 21:03 ID:qyxB+XUK
すまぬ、調べているところなんだが、なんせDBの知識ないんで・・・
期限がせまっとる。ヒントでもいいからくれるとありがたい。
期限がどうのとかいうなら、素直にサポセンへどうぞ。
回答急かすのイクナイ。
477 :
NAME IS NULL:04/02/06 11:52 ID:vOcrI91v
やり方わかった。しかし、やる前にバックアップを取っておきたいなぁ
478 :
NAME IS NULL:04/02/06 23:37 ID:+5a7+TWW
アバウトな質問です。
SQLServer6.5 + WindowsNTの環境です。
ストアドで正常にテーブルの内容を返している状態から
テーブルをtruncateしてbcpinしなおした後に、
同じストアドを実行しても、結果が返ってきません。
(エラーではなく、結果が空)
ほんでもってストアドをリコンパイルするときちんと
元の状態に戻って結果を返してくれるようになります。
そんなものですか?
ストアドの実行計画が古くて、結果が返ってくるのが遅いとかならわかるのですが。
6.5ならそんなもんだ。
trucate したら update statistics 汁!
480 :
R:04/02/07 17:35 ID:xuTfZqEG
MSDEなんだけど、これのストアドプロシージャの、
WHILEで2重のループって書けるの?すごくやりにくくて、なんべんやっても上手く行かないのだけど、。。
それから、やってる最中なんども無限ループに陥れたけど、そのプロセスってほっておくとタイムアウトで死ぬものなの?
大丈夫そうだからほっといてあるけど。まー、試験環境だし。
481 :
R:04/02/07 21:44 ID:xuTfZqEG
482 :
NAME IS NULL:04/02/08 08:49 ID:DeNr2LOM
DTSを別のホスト(Linux)から起動したいのですが、どうすればいいですか?
484 :
NAME IS NULL:04/02/08 11:56 ID:3VQKmriv
文字列フィールドにインデックスを貼っても
like条件で検索したら、使われないんですよね?
これってどうにかならないですか?
フルテキストインデックスを貼るしかないのでしょうか?
>>484 前方一致は大丈夫だったはず。(SQL Server 2000)
'あ%' → OK
'%あ%' → NG
本当かどうかは、やってみればわかる。
>>485 2000に限らず、文字列に普通にインデックスを作成するとインデックスはBツリーに
なるので、前方一致でしか役に立たない。
SQL Server 2000をまったく知らないんだが、
おすすめの入門書ってなに?
Oracleの資格の入門書みたいにアホでもわかるやつがいいなぁ。
MSの本って結構難しい気がする。
>>488 おおお コメントみたけどすんごいよさげ!!!
ありがとう!!!!
改行はどうやってselect するんでしょうか?
かきなおし
改行コードを含んだフィールドをSELECTする方法がわからんです。
3じかんほどなやんでます。ひー。
>>491 フィールド名に改行コードが含まれているという意味だろうか?
ならフィールド名を中括弧で囲むべし!
レスありがとうございます。
書き方悪かったようです。
フィールドの中身に改行が含まれている行をSELECTしたいんです。
postgreSQLだと ~で正規表現が使えたんですが・・
494 :
492:04/02/11 17:25 ID:???
すまん。
中括弧「{}」じゃなくて大括弧「[]」だった。
495 :
490:04/02/11 17:38 ID:???
結局、CSVで書き出して秀丸で処理して元に戻しました。
どうやってやるのか知りたい・・・
496 :
492:04/02/11 18:48 ID:???
そういう意味なら
where charindex(char(10),フィールド) <> 0
で。
char(10)の部分は改行コードによって変えるべし。
497 :
492:04/02/11 19:44 ID:???
つか、ただのlike文で良い罠。
where フィールド like '%'+char(10)+'%'
498 :
490:04/02/11 21:06 ID:???
>492
ありがとうございます。
なるほど〜。
499 :
NAME IS NULL:04/02/12 23:30 ID:YyPPKpB6
ログ配布を行う条件って何ですか?
osqlの出力を左詰めにしたいのですが、どうやったらできますか?
SQL Server2000で、全データが左詰めのCSVファイルを作りたいのです。
例えば
osql -U sa -P xxxxxx -Q "select name, dbid from master..sysdatabases" -o dbs.txt -h-1
といったSQL文を実行すると、dbs.txtはname列が128文字分出力された状態で
作成されてしまいますよね。
クエリを"select rtrim(cast(name as varchar)), dbid from master..sysdatabases"と
すると少し列長は縮みますがやはり左詰めにはならず、末尾に空白を付けられて
表示上の縦横を揃えてしまうようです(rtrimが効いてない?)。
揃えなくていいのに…ていうか揃えて欲しくないのに…。
よい方法をご存知の方、教えてください。
502 :
NAME IS NULL:04/02/13 10:49 ID:ab8SMACY
先輩の仕事を引き継いでSQL-Serverのデータ管理を任されるようになって
一年なんですが、この度新しいテーブルを作成することになりました。
作成したテーブル名の後ろに(dbo)という文字がくっついてしまうのですが、
これなんとかなりませんか?
既存のテーブルにはついていません。エンタープライズマネージャーで見ると
ユーザ名も違います。
先輩は既に退社してしまっているので聞くことも出来ません。
503 :
NAME IS NULL:04/02/13 22:01 ID:AtZVcAu0
とりあえず、エンタープライズマネージャーで
その先輩が作ったユーザをみっけて
そのユーザで接続してテーブルを作成すればよいのでは?
パスワードは普通なら先輩が残してくれたドキュメントにあるのでは?
ドキュメントがあるくらいならここにか着込まないか・・・
>>501 うーん、できません…。
use master
set nocount on
select name, dbid from master..sysdatabases
↑のようなファイル(name_id.sql)を作ってisqlw -U sa -P xxxxxx -i name_id.sql -o name_id.txt と
やってみたのですが、あんまり変化無いです…。
そもそも空白が入っているわけではないので、やっぱりrtrimも効かないようです。
しかもisqlとオプションが異なるようで、-sとか-hとかのオプションも無さそうですし。
うーん、中途半端なユーティリティだなぁ。
ところでisqlでオプション-h-1をつけるとヘッダーの出力を抑制できますが、SET文等で
同等の事の設定って可能ですか?(sql*plusでいう「SET HEADING OFF」の様な)
505 :
NAME IS NULL:04/02/14 00:43 ID:QzrJY8Q2
ORACLEのSORT AREA SIZEにあたるものってありますか?
506 :
NAME IS NULL:04/02/14 01:50 ID:UrORhSm7
ストアドプロシージャの引数にストアドファンクションを渡すと
構文エラーが発生するのですが、ストアドファンクションは渡せないの?
ちょっとネタが古いがBooksOnlineが更新されてた(2004/1月版)
http://www.microsoft.com/downloads/details.aspx?FamilyId=A6F79CB1-A420-445F-8A4B-BD77A7DA194B&displaylang=ja >>504 こんな感じでどう? test.sqcはクエリアナライザ(=isqlw.exe)の
オプションダイアログで保存した設定ファイル。
ここでは結果タブでcsv形式を指定してから設定を保存。
test.sql は select * from dbo.Products だけ。
>isqlw.exe -S (local) -d northwind -i test.sql -C test.sqc -E -o test.out
ProductID,ProductName,SupplierID,CategoryID,QuantityPerUnit,UnitPrice,UnitsInStock,UnitsOnOrder,ReorderLevel,Discontinued
1,Chai,1,1,10 boxes x 20 bags,18.0000,39,0,10,0
2,Chang,1,1,24 - 12 oz bottles,19.0000,17,40,25,0
3,Aniseed Syrup,1,2,12 - 550 ml bottles,10.0000,13,70,25,0
(以下省略)
>>505 datalength()かな? ORACLE知らんので違ってたらすまん。
>>506 パラメータとして使いたければユーザー定義関数を使う。
508 :
NAME IS NULL:04/02/14 13:17 ID:LIdzC4tn
>>507 ファンクション=ユーザー定義関数なのでは?
>>488 なんか、この著者の「松本美穂」さんて、#当然ペンネームだろうが。
ニキータさんとおなじ匂いがするんだよなぁ。
ちがうのかなあ。
510 :
NAME IS NULL:04/02/14 15:14 ID:pEx+adIK
>>509 この人マイクロソフトのセミナーで講師やってたりするんだよね。
結構綺麗というのを聞いた事がある。
511 :
NAME IS NULL:04/02/14 15:25 ID:gf4Csij9
SQL Server 2000 では、テーブル内全てのインデックスの断片化を調べる際に、
DBCC SHOWCONTIG('テーブル名') WITH ALL_INDEXES
という方法がありますが、SQL Server 6.5では、ALL_INDEXESオプションが使用
できないようです。
全てのテーブルのインデックスの断片化を確認したいのですが、SQL Server 6.5で
簡単な方法があったら教えてもらえないでしょうか。
「…いってみよう」は業務やってるひとには物足りない内容だろうけど、良著は良著だね。
著者紹介の
「趣味は旅行とスケッチ。
時間とお金の都合がつけば世界の移籍をめぐり、
歴史のロマンに浸っている」
ってところが微妙に魔法使いさんとクロスしてる。
あまり根堀葉堀邪推して「開発工房の閉鎖騒動」なんてことになったらつまらんから、
美穂タン関連についてはこれぐらいにしとこうか。
514 :
NAME IS NULL:04/02/14 22:42 ID:8hHrO2YA
美穂タン(;´Д`)ハァハァ
SELECT * FROM 松本美穂
WHERE ブラ LIKE '乳%'
ブラ 備考
---------
乳房 小
乳輪 大
乳首 黒
乳毛 長
>>507 >ちょっとネタが古いがBooksOnlineが更新されてた(2004/1月版)
情報サンクス。
思わす見落としがちだけど、こういうのが大事だね。
>>515,516
その式で軽く勃起しちゃった俺は死刑ですか?
>>518 INSERT INTO 美穂(口腔, 胸部, 下腹部, 膣内)
VALUES ('精液', '精液', '精液', '精液')
__________________
(1 件処理されました)
520 :
NAME IS NULL:04/02/16 12:50 ID:1fcdacmj
端末10台ぐらいの部署で開発しているのですが、
稼働中のサーバ上での作業を余儀なくされています。
これぐらいの環境なら、サーバ上での作業ってふつうなんでしょうか。
みなさんの職場ではいかがでしょう?
523 :
NAME IS NULL:04/02/16 17:46 ID:+xsVhYq2
SQLServerのRollbackってどこからデータをひっぱってくるの?
トランザクションログから?
>>520 汎用機やオフコンだと本番業務稼動中のサーバでプログラム開発を
するのが当たり前だけど、PCサーバの場合は別だよな。いつ落ちるかワカランし。
SQL鯖のデベロッパー版は安いから買ってもらえ。
525 :
520:04/02/18 18:41 ID:???
>>524 お返事おそくなりました。アドバイスありがとうございます。
前任者が立てた鯖(w2ks)が不安定でまいってます…派遣の身分なので、なかなか強い要望を出せないんです。
でも、がんばります。
526 :
NAME IS NULL:04/02/18 22:55 ID:fbOO05mN
>>525 w2k鯖(実はDEC製)やSQL鯖(実はIBM製)が不安定なんじゃなくて
前任者の作ったプログラムが不安定なだけでわ?
527 :
NAME IS NULL:04/02/19 15:37 ID:aG94h5c0
SQLを勉強しようかと思ってて、VC++6Proを
持ってるんで、SQL Serverをインスコして
みました。んで、一つお聞きしたいんですが
コレのランタイムDLLみたいなのはないんですか?
一般向けのフリーウェアでSQLを使ったりするのは
無理なんでしょうか?
MSDE
530 :
525:04/02/20 13:09 ID:???
>>526 それも大きいですが、レジストリを読むとw2ksにNIS2002(鯖バージョンじゃないやつ)やら
Ghostやらなにやらいろいろインストールされていた形跡があり、
「言語道断」な管理状態だったみたいです。
再セットアップさせてくれれば早いんですけど…はぁ。
それで言語道断は言いすぎだと思うが。
いや、w2ksにインターネットセキュリティ2002は言語道断だろう。
独習SQL + SQL鯖7.0 で勉強中です。
付属のクエリアナライザを使用しているのですが、
selectの表示結果の桁がバラバラになってしまいます。
等幅フォントにしても揃わないのですが、なんとか
そろえる方法はないんでしょうか? 特に、
ヘッダ部分と表示部分とのズレがひどくて結果が
見づらいです。
それと、独習SQLは Oracle中心に書いてあるので、
この次は少しステップアップした書籍で、SQL鯖
を中心に書いてある書籍で勉強したいと思っています。
なにか次の1冊として適当な書籍があれば
紹介してください。おながいします。
535 :
NAME IS NULL:04/02/24 19:23 ID:mYvqbjvB
union で結合した結果を別の select * from に
ぶっこみたいのですが、SQL鯖ではサポートされていないのでしょうか?
select *
from
( select 〜)
union all
( select 〜)
order by 〜
Oracleではこんな感じでできるようなのですが、
SQL鯖では未サポートでしょうか?
unionで結合した結果は表示されました。
冒頭のselect を使わずに直接 order by を使って
ソートもできました。ただ、上記のような表記は
できないのかと思いまして、質問させていただいた
次第です。
select * from
(select 〜
union all
(select 〜)
) a
ordey by 〜
537 :
NAME IS NULL:04/02/25 14:24 ID:yHTrsVIG
SQLServer2000を使っています。
主キーを設定していないテーブルにレコードを追加できないのですが、
これは仕様なのでしょうか?
解除することはできないでしょうか。
出来るけど?
>>538 そうですか・・・。
だとしたらDBの設計が悪いのかもしれないですね。
ちょっともう一度調べてみます。
つーか、あれだ。DAOやODBCでレコードセット使ってる場合は
主キーが無きゃ駄目だという。
最近、サービス起動時に下記のエラーが出るようになったんだけど心当たりない?
ソース:MSSQLServer イベントID:19011
SuperSocket 情報 : ConnectionListen(Shared-Memory (LPC)) : Error 5
543 :
NAME IS NULL:04/02/25 21:56 ID:g8DUB5ed
まだMSDEでいろいろ試してる超初心者の質問です。
bigint型のフィールドに、2の40乗とか50乗とかの数字を入れたいんですが、
UPDATE table SET field = POWER(2, 40)
などと、31乗以上をPOWERで計算すると、int型オーバーフローが起きてしまいます。
ダメモトでCONVERT(bigint, POWER(2,40)) などとやってみたりしたけどダメ。
int型以上のべき乗計算をするのは、どうやればいいのでしょうか?
ちなみに、やりたいことは、不定数(30個以上60個以下)の2値フラグをビットでひとまとめにして管理することです。
545 :
543:04/02/26 02:04 ID:???
自己解決。
POWER(CAST(2 AS bigint), 2) または
POWER(CONVERT(bigint, 2), 40)
でOKでした。
なるほど、引数の型か……。
546 :
NAME IS NULL:04/02/29 15:49 ID:ndQREWYg
バッファキャッシュのサイズってオラクルのように設定できるの?
ソートのサイズとかも。
547 :
NAME IS NULL:04/03/02 22:56 ID:7lF50t+o
教えてください。
普段は日本語Win2K上で英語版のSQLServer2Kを使っています。
ストアド内で'01/01/80'と記述されている所があり
これを1980年1月1日と解釈していて正常に動作しているらしいのですが
日本語版のSQLServer2KにDBバックアップ/リストアで移動させたところ
このストアドを呼び出す処理の所で
1) CHAR データ型から DATETIME データ型への変換の結果が日付/時刻の値の範囲外です。
という表示が出てしまいます。
おそらく、/80が処理できていないみたいなのです。
アプリやストアドの変更が容易ではないので
SQL鯖の設定変更で、処理が正しく行われるようにしたいのですが
どこの設定を変更すればいいのえしょうか?
よろしくお願いします。
548 :
NAME IS NULL:04/03/04 12:48 ID:jFfTGRKb
型について質問です
PostgreSQLだとVarchar型とText型では検索時の速度(あいまいな表現でスマソ)がそれほど変わらない・・・
とかいう話を聞いたことあって、それ以降固定長の項目以外は全てText型使って結構楽してたのですが
SQLServer2000の場合Varchar型とText型の違いに関する情報何かないでしょうか?
住所とか名称とか桁数考えないといけない項目をとりあえずText型で作ってしまうのが
非常に楽なのでできればそうしたいのですが...
text型にすると更新処理とか面倒だぞ。
おとなしくvarchar型にしとけ!
>>547 「既定の言語」か「default language」でBooksOnlineを検索
>>548 varcharとtextが同じなのはPostgresだけの話
以下の様なテーブルAとBを集計して、
テーブルA テーブルB
コード 在庫 売上 コード 売上
------------------ ------------
0001 10 0 0001 5
0002 20 0 0002 10
0003 30 0 ------------
------------------
結果としてテーブルAを、
テーブルA
コード 在庫 売上
------------------
0001 5 5
0002 10 10
0003 30 0
------------------
の様にしたいのですがSQL Serverではどの様にするのが一般的なのでしょうか?
クエリ一発で出来ちゃったりするのでしょうか?
ヒントだけでもいいので教えてください。
552 :
551:04/03/05 15:37 ID:???
すいません。ずれまくりましたのでもう一度、
テーブルA テーブルB
コード 在庫 売上 コード 売上
------------------ ------------
0001 10 0 0001 5
0002 20 0 0002 10
0003 30 0 ------------
------------------
テーブルAの結果
コード 在庫 売上
------------------
0001 5 5
0002 10 10
0003 30 0
------------------
よろしくおながいします。
ヒントと言うか何というか、まず少しは勉強しろよお前は
554 :
NAME IS NULL:04/03/06 01:33 ID:2XGG8ezu
トランザクションログのサイズが
どんどん増えてしまうのですが
サイズを減らす方法はあるのでしょうか?
dump transaction
556 :
NAME IS NULL:04/03/06 09:37 ID:liOCM9X0
素人です。MS-SQLServer2000に複数の同じ内容のデータベースを構築しました。これは例えばエリア毎に顧客情報を入力する為と考えてください。
この複数のデータベースのある一つのテーブルを、あらかじめ作成した統合用データベースの同じ内容のテーブルにコピーしたいのですが、どのようにしたら良いのかどなたか教えていただけませんでしょうか。
>554
BooksOnlineで以下のキーワードを探してみる。
ログ 圧縮 切捨て
>>556 INSERT INTO データベース1.dbo.テーブル FROM データベース2.dbo.テーブル
>556
なんでそんなめんどくさいことを。
>>556 内容をコピーするのはともかく、どう使うんだ?
エリアごとにデータベースを変更してアクセスするのか?
それともその統合用データベースを参照するのか?
エリアごとにデータベースを変更する場合、頻繁にデータベースを切り替える事によって
メモリ使用やパフォーマンスに問題が出てくることが予想される。
逆に統合用データベースを参照する場合、その統合用データベースを定期的に更新する
必要があるが、データの一貫性に欠けることとなる。
統合用テーブルではなく統合用ビューにするか(それも遅いが)、もしくはエリアごとに
データベースを変えるというその設計を見直すべきだろう。
>>556 普通ならエリアIDを保持するテーブルを作って
各テーブルにはエリアIDのカラムを追加する。
そうすれば1個のDBで済む。
正規化の勉強をすべし。
SQL Server 2000 Reporting Services まだ送ってきませんか?
563 :
sibamon:04/03/09 19:08 ID:gqlVvI9A
Enterprise Managerを使って、こまめにバックアップを取ろうと考えています。
一日に一回か、一週間に一回か、一ヶ月に一回か
まだはっきり決めていないが、しかし試しにと思って
何度かテストをしたが、全然バックアップがされていない。
本やらMicrosoftの技術情報・サポート情報をくまなく見たのに・・・。
>全然バックアップがされていない
ってのはどうやって確認したんだい?
565 :
sibamon:04/03/09 19:34 ID:gqlVvI9A
ファイルを指定して、そこに落とし込みができるようにしたつもりでいる・・・。
>>565 設定した内容とか、何したのか書いてくれたら何かわかるかも。
567 :
sibamon:04/03/09 20:19 ID:gqlVvI9A
単純に
「管理」で「ジョブ」のプロパティで新規作成をして
「全般」に「テスト」と名前を入れ
「ステップ(新規作成)(コマンド)は書き込み」「スケジュール(新規作成)毎日で時間は作成した時間の5分後に設定」
としてみました。
他にもしなければならない作業があったのでしょうか?
初心者で本当にスミマセン。
>>567 設定したジョブを手動で実行してもダメ?
最初に読むべきものはBooksOnline。これ定説。
とりあえず
データベースを右クリック→全てのタスク→バックアップ
で表示されるGUIベースでのバックアップをまず成功させるべし。
同じ画面の下部にある「スケジュール」にチェックを入れると、バックアップジョブが作成される。
そのジョブの内容を良く見て理解しそれからカスタマイズしていくとよろし。
当方バージョンは2000。他のバージョンでどうかは知らぬ。
570 :
NAME IS NULL:04/03/09 23:29 ID:0A5L6zta
データベースいっぱい作ってしまうのは駄目なんでしょうか?
マスタ用DB、データ用(年度毎に…)
MSDEって2GB制限だから分けないと全部入らんし・・・
>>570 テーブルがたくさんあるなら分けた方がいいんじゃないかな。
その方が分かりやすいし、管理もしやすいと思う。
572 :
570:04/03/09 23:56 ID:0A5L6zta
>>571 ありがとう。
でも、少し前の方のレスで一つの方が良いって、書いてあるんでどうかなと。。。
1年で200MBほどなんで10年間は持つはずなんだが、それでは顧客が納得しない。
一生持て、と(w
コロコロDB切り替えても大丈夫でしょうか???
じゃあ、SQL Server買え、と。
>>572 マスタ用とデータ用という分け方なら分けた方がいいと思う。
そうでなくてデータ用を複数持つというならデータ量以外のそれ相応の理由が必要では。
「平成○年度データ」みたいなテーブルを作って年度ごとにデータを分けるようにして
SQLでは「平成」+int数字でテーブルを指定。
あとあとよく考えたら元号変更に対応していなかった
っていうマヌケな事例を聞いたことがある。
……ガクガクブルブル
>>570 データベースをまたぐトランザクションが出てくると面倒じゃないの?
バックアップ用にわけとくってのなら切り替えはちゃんと手でやったほうがいいね。
577 :
NAME IS NULL:04/03/10 09:29 ID:RLNKss6u
SQLserver稼動中のサーバーのホスト名を変更したいのですがSQLserverにはどんな変更が必要でしょうか?
お教えください。よろしくお願いいたします。
578 :
570:04/03/10 11:19 ID:x5Kuhrva
>>573-575 ありがとうございます。
予算がありませんのでSQL Serverやオラクルは駄目なんです。
DBは西暦年度別にする予定。
当方おっさんなもんで和暦嫌い。西暦も4桁取ってるしw
マスタ用とデータ用でDB分割した場合、マスタ−データ間のテーブル結合出来ませんよね?
何か良い手は御座いませんか?
579 :
570:04/03/10 11:25 ID:x5Kuhrva
現状では、「稼動DB」(最新マスタ、使用中データ)と、
「xx年度DB」(年度末処理段階でのマスタ、年度末処理段階で完了したデータ)
で分割しようかと。「xx年度DB」はバックアップみたいなもんにして・・・
最新マスタ更新時や旧年度データを変更した場合の関連DB更新が大変そうですが…
>>578 別DBでも結合できるんじゃね?
やってみれ。
関係ないけど、SQLServerやオラクルが買えないのはいいとして、MSDEでやると余計な工数かかるってのはいいのか?
オレならMSDEでやる場合の見積を高くするが。
581 :
580:04/03/10 11:35 ID:???
>>579 やっぱりどう考えてもSQLServer導入したほうが安いよそれ。
MSDE対応するために何日かかるのか・・・
582 :
570:04/03/10 13:18 ID:x5Kuhrva
>>580 ありがとうございます。
確かにSQL Server導入しても金額的に変わらない気がしてきました。
5CALで20万くらいだし。
でもその場合1DBにしたとしてバックアップなんかはどのようにされるのでしょうか?
肥大したDBはハードディスクにバックアップとるしか無いでしょうか?
(現状は、年度毎なんでMOかCDにと考えてますが)
処理速度はどうなんでしょう?レコード件数少ない方が早そうですが、
INDEXあるから関係ないでしょうか?
SQLServerのデベロッパエディションって安いよね。
584 :
580:04/03/10 13:46 ID:???
>>582 バックアップ先はリムーバブルな記憶装置でもOKではないでしょうか。
もしダメなら、一度HDDにバックアップしたファイルを、リムーバブルドライブに移動すればOKかと。
バックアップも、差分バックアップなら圧縮しなくてもMOで十分かもしれませんね。
>>583 誘惑しないw
PostgreSQLでいいや
普通バックアップはdatとか使わない?
すいません、SQL Severの設定について教えて下さい、、、、、。
コントロールパネル→管理ツール→データソースODBC→
ユーザDSNタブでdBASE Files選択されている状態で追加
→データソースの新規作成→SQLSERVER選択されている状態で完了
→データソース名入力**** データソースの説明入力:::: サーバー名(local)
ラジオボタン:選択ネットワークへのログインIDで、WindowsNTの認証メカニズムを使う
→チェックボックス:SQLServerに接続して追加の構成オプションの規定設定を取得する
次のダイアログ 規定のデータベースを以下のものに変更する→自分でつける
ANSIのところはデフォルトでそのまま→次のダイアログ変更せずに完了
→テスト→失敗
環境はWinで2000professional LANは構築していません。
教えてくださいと言ってる割には、質問が書かれてねーな。
ODBCの接続テストでどういうメッセージが出てたのか書いてくれないと。
590 :
570:04/03/11 15:48 ID:MzjjRq/s
>>580 ありがとうございます。
どのみち旧年のデータはどこかに避ける事になりそうだし…
ところで、日々入力されたデータの集計表を作成する場合、
1.集計表作成時に実データより集計
2.日々の入力処理時に、あらかじめ用意された集計用テーブルにデータを計上
どちらの方式が正しいのかな?
>>583 ・・・安いよねw
>>590 要求仕様やデータの性質によるからこれが正しいという答えは無い。
リアルタイムに集計表に反映されてならければならないなら後者。
前者ならSQLAgentで定期的に集計処理をして予め集計表を作っておく。
定期的な集計処理を数分おきにして似非リアルタイムにするというのもあり
592 :
NAME IS NULL:04/03/11 21:48 ID:9opjoTop
>>583 Oracle のデベロッパーエディションは只ですが。
593 :
NAME IS NULL:04/03/12 10:35 ID:LJGVGwgP
TCPのソケットバッファとかって皆さん変更したりしてますか?
インターネットで言うところの、上り用のチューニングにあたるやつです
Bフレッツだと上りが3M→20Mとかになりますが、LANでも効果でるんでしょうか?
ADO.NETで、フィールドのタイプやサイズを所得したいのですが。
ADOのFieldsオブジェクトみたいなのは無いのでしょうか?
>>594 DataColumn オブジェクトのメンバで取得できますよ。
Windows Server 2003で運用してる方いますかー。
調子はどうですかー。
>>596 自宅はSmall BusinessServer2003PremiumEditionで、もう1ヶ月以上
運用しているけど、特になんとも。(まあ、負荷が少ないせいか)
Celeron1.2GHz+メモリ512MBでやってて、WindowsServer2003+SQL2000
のときに比べExchangeServer2003が重い感じがしていたけど、
メモリ768MBにしたら少しよくなった。
会社のWindowsServer2003+SQL2000は、Xeon2.4GHz×2+メモリ2GBなんで
激速
>>562 SQL Server 2000 Reporting Services ただ今、到着しました。
>>597 事業所でも、もう2003でSQL2000を運用してるんですね。参考になりました。
600 :
NAME IS NULL:04/03/20 02:41 ID:kAmg/FAQ
Transact-SQLの質問なんですが、下記の文でCASEを使ったところなんですが、
「CASEの近くがおかしい」みたいなエラーが出てしまいます。
引数datepartに入っている文字で場合分けしたいのですが。何がいけないんでしょうか。
ちなみにCASE文を全部コメントアウトするとエラーが出なくなります。
ALTER PROCEDURE GetAccessCounting
(@datepart nchar(1), @date datetime) AS
DECLARE @begin_date datetime, @end_date datetime
CASE @datepart
WHEN 'y' THEN @begin_date = @date
END
CASEは式の中でないと使えない
普通の言語に慣れてると戸惑うところかもな
もしマシンを悪意ある人間にいいようにいじられまくったとして、
DBのパスワードだけは(DB以外の場所からは)バレなかったとして、
DBのデータを勝手に読まれる危険ってのはどんなもんなんでしょう?
データファイルをバイナリエディタで読まれるといろいろ見えちゃうとか、
そういうことはないのでしょうか。
それに備えての暗号化とかあります?
>598
Windows Server 2003+SQL Server 2000を、
597さんとほぼ同スペックの、Xeon 2.4GHz x2 + 2GB で使っているけど、
まだ本運用には入っていないけど、今のところ、問題なさげ。
>602
7.0 以降、SQL Server 認証のみにはできなくなったので、
サーバーに管理者権限でログインされたら、SQL Server にも管理者権限でログインしたことと同等です。
ですから、データ ファイルを暗号化したところで無意味でしょう。
(そもそも、暗号化は無理な気がするけど。)
ですから、ネットワーク的にも物理的にも、サーバーに簡単にアクセスできないように、努力するべきかと。
604 :
NAME IS NULL:04/03/20 17:09 ID:kAmg/FAQ
>>601 なんと!よく例示されているSELECT文と一緒じゃないとだめなんですか…
てことは、引数による場合分けはIF文ですることになるのですか?
>>604 ALTER PROCEDURE GetAccessCounting
(@datepart nchar(1), @date datetime) AS
DECLARE @begin_date datetime, @end_date datetime
SELECT @begin_date =
CASE @datepart
WHEN 'y' THEN @date
END
606 :
NAME IS NULL:04/03/21 11:53 ID:C4S/2Jgh
1テーブルに1万件データの場合と、200万件データの場合の抽出処理を
比較すると、速度的にどう違いますか?200倍?
抽出項目は複数条件で、全てINDEXがあります。
抽出結果はどちらも500件程度です。
>>606 クラスタ化インデックスだけでSELECTできるような
条件下なら大して変わらない
608 :
606:04/03/21 22:05 ID:C4S/2Jgh
>>607ありがとうございます。
クラスタインデックス以外の複数条件抽出です。
かなり遅いですか?
それと、ネットワーク上のDBをVBアプリで操作しているのですが、
VBアプリ内で、クエリを発行し抽出するのとDBにVIEWを設定し
VIEWを取得するのとでは、どちらが早いのでしょうか?
609 :
NAME IS NULL:04/03/21 22:27 ID:/qlJBYR+
>>605 どもです!かなり特殊(?)な使い方するんですねぇ…
精進いたします!
610 :
NAME IS NULL:04/03/21 22:33 ID:4ixD5ho+
>>608 Where 条件が同じなら View も TBL 直も同じだと思う。
>>609 >クラスタインデックス以外の複数条件抽出です。
>かなり遅いですか?
ケースバイケースだから答えようが無い
まずはクエリを書いてみて
遅ければ実行プランを見ながら地道にチューニング。
>>609 SQLでのCASEは関数だということが飲み込めれば問題ないかと
612 :
606:04/03/22 00:09 ID:vFiAjQBl
>>610,
>>611 有難う御座います。
クエリは、
SELECT A.*,B.xxx,C.xxx FROM (A LEFT JOIN B ON A.BCD=B.CD)
LEFT JOIN C ON A.CCD=C.CD
WHERE A.F=0 AND A.YEAR=2003 AND A.BCD=xx AND A.EF=0
ORDER BY A.CCD,A.PCODE
だったかな…
一致レコードは、A.Fは0,1,2でほぼ均等、A.YEARは年なんで現状は半分
A.BCDは1/20,A.EFは0,1で半分不明です。
A.Fの部分はTableに分割してもいいんですけど。一つずつしか見ないので。
613 :
606:04/03/22 00:14 ID:vFiAjQBl
それと、上記のクエリだとテーブル結合してから抽出するのでしょうか?
それだと遅そうですよね。「抽出してから、抽出分に対して結合」って
どうするんでしょうか?
シャレにならない顧客情報流出事件が多い昨今、
なるべくセキュリティは万全にしたいのですが、
IIS+ASP+SQLServerで、
Windows認証と混合認証ではどちらのほうがより安全なのでしょう?
IIS鯖とSQL鯖は別マシンに分けて、IIS鯖にLANカード2枚刺しでクロスケーブル接続。
混合認証なら、パスワードの入り接続文字列だけは仮想ディレクトリの外に
ファイルで記述して、接続時にFSOで読み込ませるつもりです。
これだとどっちの認証でもあんまり変わらないかな?
SQLインジェクション耐性を考えるとWindows認証のほうがいいのかな?
いや、ちゃんと完璧に値チェックやサニタイズできてればいいんだけど……
>>614 Windows認証という考え方そのものに欠陥が含まれているように思えるので、
正直信用してない。
SQL Server認証は使わないようにできるけど、Windows認証はOFFに
できないんだよなぁ。 裏ワザとか無いの?
>>614 Fire wall で http 以外を閉じてりゃ大丈夫でしょ?
1434/udp が開いていて SQLSlammer ワームに遣られたサイトがDQNな
サイトが沢山あった分けだが。。。信じられん。
日本語が変だ・・・鬱
619 :
復旧:04/03/29 17:29 ID:???
619 :NAME IS NULL :04/03/25 23:41 ID:jXJOsqPf
すみません。トランザクション処理で、
トランザクション開始
A…主データ登録
B…集計アップデート
C…集計アップデート
トランザクション終了
とする場合、B処理中に何らかの異常によりアプリケーションが強制中断した場合
データベースはどうなるんでしょう?
1.トランザクション開始の状態に戻る。
2.Aまでの更新は反映
620 :
復旧:04/03/29 17:30 ID:???
620 :NAME IS NULL :04/03/25 23:45 ID:???
>>619 1
621 :
復旧:04/03/29 17:30 ID:???
621 :619 :04/03/26 00:26 ID:YzXxhl/5
>>620 1ですか。というよりCommitされるまでデータベースに反映されないって
ことでしょうか?
有難う御座います。
622 :
復旧:04/03/29 17:31 ID:???
622 :NAME IS NULL :04/03/26 01:01 ID:???
そのためのトランザクション。
623 :
復旧:04/03/29 17:32 ID:???
623 :NAME IS NULL :04/03/26 01:33 ID:???
>>616 BUILTIN\AdministratorsをSQLServer内から消してしまうのは駄目?
624 :
名無し:04/03/30 01:43 ID:UHH7tib7
Transact-SQLを整形してくれるツールか、マクロって
ないでしょうか?
SQLならいくつかあったのですが、Transact-SQLの整形
ツールは検索してみたのですが、出てきませんでした。
もしご存知の方、いらっしゃいましたら教えていただけると、
ありがたいです。
625 :
NAME IS NULL:04/03/31 11:20 ID:nK08AMlh
質問です。教えてください。
データを
TTP://〜〜.asp で表示させる際、アドレスなどをハイパーリンク機能させたいのですが
その場合、データ型はどのようにしておけばいいのでしょうか。
>>625 リンクを作るのはASP側の仕事。
DBのデータ型が問題になるような話じゃない。
本日の朝、久しぶりに鯖の画面見たら、CドライブのDISKスペースが残り0バイト
になっていた。不要のファイルを消してから、そのままほうっておいたら、
お昼前に電話が鳴って、この鯖のWeb検索サイトがエラーメッセージがでて
使用できないと言われた。再び、鯖の画面見たら、CドライブのDISKスペースが
残り0バイトになっていた。
Cドライブのフォルダの中を片っ端から見たら、
C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\LogFiles
の中のログファイルの4月1日分が33MB(位い)のが沢山できていてこれだけで
6GB以上になっていた。このため、CドライブのDISKスペースが残り0バイト
になった。
とりあえず、Reporting Serviceを(サービスより)停止して、ログを全部消した。
これで、業務は動作するようになったが、他の仕事があり原因追求は手付かず。
Reporting Serviceアプリケーションをまだ作成して、配置していない鯖はOK。
(Reporting Serviceをインストールしただけのマシン)
試しに、アプリケーションを作成して鯖配置したマシンだけの障害。
628 :
NAME IS NULL:04/04/02 09:36 ID:zKVMD3Op
トランザクション中はテーブル全体にロックがかかるんですか?
629 :
627:04/04/02 12:33 ID:???
本日の朝、作成したファイルが保存(共有フォルダ)できなかった。
社内用鯖のCドライブのDISKスペースが残り0バイトになっていた。
今度は、C:\WINDOWS\system32\besnmp.TRC が、5,932,790KBとなってDISKを
使い果たしていた。こちらの鯖はReporting Serviceをインストールしただけ
なのだが。とりあえずこちらもReporting Serviceを止めた。
>>628 かかりません。
トランザクション内で、テーブル内の殆どのレコードを対象とする処理を行うか、
TABLOCK ヒントを用いないと、テーブルロックにはならないと思いますよ。
631 :
NAME IS NULL:04/04/07 20:18 ID:ItX9MY9J
VBからSQL Serverを使用して、DBのバックアップを行っているのですが
DBを削除して再作成すると前のDBのバックアップが戻せません。
なぜでしょうか?
削除したDBと新規に作成したDBの構造はまったく同じなんですが…
(両方ともVBから同一ルーチンで作成)
>>631 復元の際に選択出来るオプションの問題だと思うが。
634 :
NAME IS NULL:04/04/08 14:11 ID:GMR9kcP/
>>631 既存のデータベース上に強制的に上書きにチェックをつける
何をどう操作してどんなエラーメッセージが出たかも書かずに答えられるかボケ
hi,
I am getting this error message everytime I try to open a table in
Enterprise Manager.
Selecting all rows or top rows from Enterprise Manager gives me the
following error:
Unknown Error 8007007F
I am able to run the query under Query Analyzer without any problems.
I tried to reinstall the MDAC 2.7 and reinstall SQL 2000 client tools and
SQL sp3.
Still the error appears when using Enterprise Manager to open a table.
Can you give me some advices!!!
thanks a bunch.
someone?
hey guys ok?
>636
テーブル・クエリのDLLファイルを再構築すれば直るんじゃないかな。
>>636 Do you remember Perl Harbor?
641 :
NAME IS NULL:04/04/15 10:26 ID:rU4Z4aNp
現在利用中のノートPC(大量にあります)に、SQLServer 2000 PersonalとSP3aをインストールしなくてはいけなくなりました。
SQLServer本体とSP3aを両方インストールしていると時間がかかりすぎるので困っています。
WindowsXPや2000の様に、SP3a適用済みSQLServerというのは作れないものでしょうか?
お助けねがいます。。。
>>641 いろんなとこで同じ質問を目にしますけど、結論としては「できるかもしんないけど、やらないほうがいい」
って感じです。
地道にマイクロソフトに要求メールを出しましょう。
643 :
NAME IS NULL:04/04/16 16:27 ID:c3mJKx2M
MSDEの 再配布というのは、
.netpassport で登録すればそれだけでOKでいいのでしょうか?
ソフトウェア業なのですが、
お客様が無償DBとのご要望で MSDEを検討しているのですが、
お客様のほうでMSDEを準備していただくのではなくて、
(OFFICEとか、ダウンロードしてもらうのではなく)
納品物の一式の中に、MSDEを含めてしまうというのが
ライセンス的に問題がないかどうかが知りたいのです。
マイクソに聞け
646 :
NAME IS NULL:04/04/16 22:55 ID:Z9CZ+7Qb
>>643 >お客様が無償DBとのご要望で MSDEを検討しているのですが、
そ う い う お 客 様 は 相 手 に し な い 方 が 良 い と 思 い ま す。
647 :
NAME IS NULL:04/04/17 00:39 ID:lVULYhRJ
SQLServerが使用するポートを指定しているにもかかわらず、リンクサーバ機能を使っているときに
勝手に8000番台以上のハイポートで通信してしまいます。
何が原因でしょうか?
648 :
643:04/04/17 00:50 ID:KCHf8+OO
下請けなので ヒーヒー言ってます。だれかたすけてー
650 :
643:04/04/17 07:45 ID:KCHf8+OO
>>643 そんな条件を出す客がいるんですかぁ
もういっその事ね、割をうわあなにをするヵsjd;lf
>>650 MSDEとSQL Serverだと、開発に関しては全く変わらないけど、
お客様に使って頂く場合は・・・
Enterprise Managerが無いので、管理が面倒
→ わざわざ管理ツールを作って一緒に配布する会社もあるけどね
基本的にDesktop Engineなので、同時多数アクセスの際に性能低下が
起きると言われている(同時 10接続までの制限あったかな?)
でも、同時使用数が10人程度なら、Jet Databaseを使うより圧倒的に
良いので、MSDEを採用するケースはあると思うのよね。
その規模でSQL Serverを買って頂くのは金額的に辛いものが。
要は、想定される規模に見合うかどうかだよな・・・
>>650 >また、実際 ソフトウェア業で、お客様にMSDEやFireBird
>を使っていただくというのは 一般的ではないのでしょうか?
安いパッケージソフトは別にして
ン 百 万 の カ ス タ ム ソ フ ト で は あ り え な い。
運用局面に入ってから
え?保守契約?無理だよ今更。
だって君、○円で出来るって言ったじゃないか。
とにかく君がそう言ったんだから最後まで面倒見てよね。
って言われたりして・・・
15万円のデータベースが高いと言う客には
吊るしのパッケージソフトでも勧めておけ。
しかし、そんな安いソフトでも延々と無償で面倒を見させられる罠。
>>650 そんな客は稀。
Windows環境では、Oracle >>>>> SQL Server >>>>>>>>>>>>>>> その他のDB でつ。
オラクル神話は今も健在。
>656は価格の事さ!!キニスンナ!!
658 :
NAME IS NULL:04/04/17 23:03 ID:ylFEzNMs
商用DBも買えないような貧乏な客は相手にすんなって事だ。
いいですね。
そんな強気な発言をしてみたいよ。
すま、ちょい質問
spあたってるかどうかって、どこで見たらええん?
>>660 クエリアナライザや osql.exe とかで "SELECT @@VERSION" を実行。
sp3a と累積パッチが当たっていたら、バージョンが "8.00.818" になります。
あと、Enterprise Manager で、インスタンスのプロパティででも見れるか。
RDO+SQLServer2000の組み合わせだとSELECTの発行でもたつくみたいですけど、
やっぱり駄目なんでしょうか?ADOがいいですかね?
664 :
NAME IS NULL:04/04/22 14:32 ID:+gxtK8Z4
>>663 ちなみに、SQLServer6.5からSQLServer2000へのアップグレードです。
665 :
NAME IS NULL:04/04/22 17:27 ID:CH33zHuv
image型にgif画像を突っ込むのと、
画像は別にファイルとして保存してDBにはパス情報だけつっこむのと
どっちが一般的なんだろう。。
これから検証するんだけど、あなたのご意見きぼんぬ。
パス
前者
>>663 それ何処かがおかしいんだと思う。
SQL Server 2000対応のODBCドライバ使ってます?
パスはあと1回までだよ。
>>665 セキュリティを言うとパス情報だと駄目でしょ。
672 :
NAME IS NULL:04/04/24 05:27 ID:YPqhVjvN
フォルダのパスは別管理しておいて
テーブルにはファイル名だけを入れておく方法で管理している。
保存場所が変わってもフォルダのパスを変更するだけで良いので楽。
>>665 Base64でテキストにエンコードしたあと
シーケンス番号を付けて各行を普通に
Insertしているぞ。ちょっとサイズが
増えるけど。
674 :
NAME IS NULL:04/04/24 10:55 ID:JhRt9cKT
すんまそん、ちょっと質問。
SELECT ぬるぽ,[ガッ] FROM ますた
こんな風に、大カッコがついたりつかなかったりするSQLを見せられたんですが、一体どんな意味があるんでしょか?
そもそも、項目名を[]で括るのってどんな効果あるんでしたっけ?
項目名の先頭が数字だったりする場合、囲まないとエラーになるんじゃなかったっけ。
>>674 空白入りのフィールド名とか、漢字(日本語)を使った
フィールド名を使った場合に誤判定されない。
「omae mona]と言う名称でフィールドを作った場合、
「omae mona」と書くと、エラーになるが、「[omae mona]」
と書くと一つの列名として認識する。
日本語文字を使用した場合も、中に含まれるコード
の関係で問題が出る可能性を減らせる。
しかしな、そんなフィールド名を使うのはどうかと思う。
677 :
NAME IS NULL:04/04/24 11:50 ID:ooeVpwwi
SQL Server2000からMySQLにリンクサーバーを張っているんですが、
あまりにも遅くて使い物になっていません。
(直に接続した際の数百倍くらい遅い)
なんとか、高速化する方法は無いものでしょうか。
ちなみに、OLE DB ODBCでリンク接続しております。
パフォーマンスチューニング等は特に行っておりません。
(設定はほぼデフォルトのまま)
アドバイスよろしくお願いします。
678 :
NAME IS NULL:04/04/24 19:11 ID:04EyqBcZ
SQLServerでは皆さん日々何を監視されていますか?
オラクルでは、エクステントの数や断片化、行移行などを
バッチで毎日ログに取っていました。
SQLServerではどの個所を見るべきなのでしょうか?
>>660 >>661ですでに答えられているけど、
select @@VERSION AS SQLServerVersion, SERVERPROPERTY('ProductLevel') AS SQLServerServicePack;
で、当たっているSPの番号までわかる。
ただし、MSSQLServer7.0では使えない。
>>678 SQLServerはデフォの設定のままで何もしなくても
それなりに動く。
682 :
674:04/04/25 18:14 ID:???
>>676 へー、そうなんですか。
文字コード問題ってホントあちこちに潜んでますねえ。
いっそ漢字禁止にすればいいのに。
旧い地球人な所為か、変数やらラベルやらに漢字あると違和感ありまくり。
683 :
NAME IS NULL:04/04/25 21:03 ID:SjeoKHua
てゆうかDBをチューニングする前にプログラムロジックやインデックスを最適化汁。
686 :
NAME IS NULL:04/04/29 17:21 ID:TzSibLtB
SQL2Kなのですが、DBのバックアップについてお聞きします。
DBの管理が初めてなのでかなりあせっています。
ハード構成
IDE HDD×2 ミラー 50GB
ストレージ 1GのMO
このようなハードを使用しているのです。
バックアップはどのように行えばよいでしょうか?
データ的には1日に500KB程度ずつ大きくなっていきます。
おねがいします。
どのようなバックアップを行いたいかによって決まる。
BooksOnlineの「バックアップと復元の計画の立案」を熟読すべし。
688 :
NAME IS NULL:04/04/29 20:45 ID:9Jz5Uf2G
>687
了解です。
じゅくどくします。
689 :
AgFree:04/04/30 20:40 ID:xhSnAPYe
>>1 >PostgreSQL 本体は無料だけどCygwinにライセンス料が必要
Cygwinのライセンス料は、Cygwinのライブラリをリンクする製品を
作って、それをGPLを継承したくない場合にかかる。
Cygwin上で、フリーのDBを動かして、商利用する分の問題はない。
もし、それが、「問題ある」とするなら、GPLのLinuxで
動作するプログラムは、すべて商利用できない
(あるいはオープンライセンスにしなければならない)ことになる。
古いことだが、ちょっと、「おや?」と思ったので。
690 :
AgFree:04/04/30 21:12 ID:xhSnAPYe
691 :
NAME IS NULL:04/05/01 02:13 ID:1tahXioS
SQLServer2000のDeveloperEditionを買いたいのですけど、
大阪近辺で店頭で売っているところってどこかありますか?
SQLSERVERのJDBC(TYPE4)でトランザクションが
かけれないのですが(いやがらせ?)例外になるのですが
MSはわざとしてるの?
テスト
ほかのDBからデータをインポートしたのですが、改行コードが違うため、
SQL Serverにあわせて変更したいのですが、どうしたらいいのか分かりません。
インポートしたデータの改行コードが chr(11) だということは分かったので、
とりあえずクエリアナライザで
update tbl set fld = replace(fld, chr(11), chr(13))
とやってみたのですが、chr は有効な関数名じゃないと言われました。
次に、Accessでプロジェクトファイルを作り、レコードセットから1件ずつ
取り出し、置換、アップデートという方法を考えているのですが、
なんかものすごい大げさな事をやっているような気がします。
何か一発で改行コードを変更する方法はないでしょうか。
>>694 Transact SQLにある関数を確認しようねぇ〜。
基本だが、DBMS毎に独自のSQL文法があるし、
関数も全てが共通ではない。
「文字列関数」で探してみれ。
696 :
694:04/05/03 23:40 ID:???
>>695 分かりました!「CHAR」 ですね。明日早速試してみます。
Books Onlineもずっと探していたのですが、探し方が悪かったみたいです。
っていうか、CHAR も見かけてはいたんですが、型の宣言だと思ってスルーしてました(鬱)。
とにかく、ありがとうございました!
データインポートウイザードで元データの改行コード指定できたような気が。
698 :
sage:04/05/04 15:32 ID:jL+LFRPA
すいません!質問です!
間違ってLDFファイルを削除してしまいました!
MDFファイルは残っていますが、復旧は不可能でしょうか?
699 :
NAME IS NULL:04/05/06 18:18 ID:DO2nPoNd
SQL Server7.0の頃のMSDEはOLAPやフルテキストが使えなかったようですが、
MSDE2000では使えるようになってるのかな?
700 :
NAME IS NULL:04/05/07 15:27 ID:Z887sKP5
SQL Server 2000です。
pcd, name, ccd をフィールドとするテーブル TABLE_A があります。
pcd は Primary KEY.
@param_pcd, @root_cd をパラメータとして与え、
select * TABLE_A WHERE pcd = @param_pcd
として得られた結果の ccd を @param_pcd に与えて
処理するレコードがなくなるまで、再帰処理を行ないたいと考えて
います。途中のレコードの ccd に @root_cd と同一のデータが
存在した場合は、そこで中断したい。
スドアドプロシジャーでこのような再帰を行なう事はできますでしょうか?
アドバイス頂けると幸いです。
701 :
NAME IS NULL:04/05/10 15:41 ID:S0Y8K7Nl
複数のインスタンスっていうのは、それぞれにsaのパスワードを設定できるんですよね?
あるPCにMSDEインストールしようとしたら、先に別のMSDEがインストールされていて、
それのsaのパスワードも分からないので、仕方無くインスタンス名を指定たもう一つMSDEをインストールして、
osqlで操作しようと"osql -U sa -P パスワード -S マシン名\インスタンス名"と指定したんだけど、
SQL Serverが存在しないと言われてしまう・・・
>>701 osql -L でちゃんと見えてまつか?
703 :
NAME IS NULL:04/05/11 02:01 ID:KP2p/8XJ
今、msdeのみが入っているサーバがあります。(ACCESSやDeveloperは無い)
osqlでログインして、テーブル"infoMachine"の列"m_code"をNOT NULLにしたいのですが、
どう書けばよいのか分かりません。
ALTER TABLE infoMachine
ADD NOT NULL(m_code)
↑PRIMARY KEYの時はこんな感じで変更できたからやってみたけどダメ
どうすれば良いのでしょうか?
>>700 ストアドプロシージャのネストは32まで。
それ以上再帰が深くなりそうな場合には使えない。
>>701 別インスタンスにするとMSSQLServerサービスも別になるけど
アクセスしたいほうのインスタンスのサービスは起動してるか?
705 :
NAME IS NULL:04/05/11 13:57 ID:qzOCmaWe
SQL内でVB6の on error resume next みたいなのってナイのでしょうか。
というのは、VB.NET(ADO.NET)+SQLServer2000を使ってるんですが、
クエリアナライザみたく、SQL文にエラーがあっても、
次の GO までをどんどん実行(エラーを無視する)させたいのです。
または、呼び出し側(VB.NETのSqlClient.SqlCommand.ExecuteNonQueryとか)で
制御すればいいのでしょうか(その場合、スレ違い失礼です)。
すみませんが、よろしくお願いします。
IF @@ERROR <> 0 GOTO どこか
じゃだめ?
707 :
NAME IS NULL:04/05/14 16:54 ID:UhnHAn5T
Enterprise Manger にて
新規作成したユーザー定義データ型の型やサイズを変更するには
どのようにやればよいのでしょうか?
>>703 ALTER TABLE [Table] ALTER COLUMN [COLUMN] [NEWTYPE] NOT NULL
710 :
703:04/05/17 23:03 ID:7NBGPS0P
>>709 ありがとうございます!
ものすごい助かりました
711 :
NAME IS NULL:04/05/18 00:46 ID:sp+q8rJa
SQLServerでMySQLやMDBのようにDBファイルをコピーしておけば
削除してもコピー分を元の位置に置いとけば勝手に元に戻るとかは
できますか?
それができると個人用のデータベースにも使えるかなと。
>>711 元に戻ると思いますか?
調べた結果をご報告お願いします。
>>711 できたら究極のレプリケーションだな
トランザクションログでぐぐれ
サービスを止めて、MDFファイルとLDFファイルをバックアップするだけのように思うけど。
そういう要件なら、トランザクションログを切り捨てちゃった方がいいかも。
>>711 sp_detach_db
sp_attach_db
あたりでどう?
716 :
711:04/05/18 22:08 ID:SuvWK2on
>>713,715
サンキュー。そのうちヤッテみます。
718 :
NAME IS NULL:04/05/19 15:39 ID:wcmQiiVX
t-sqlで教えてください。
とあるフィールドの値がスペースで区切ってある場合
個別に値をとりだしたいのです。
select substr(姓名, 1, 4) as 姓, substr(姓名, 6, 9) as 名 as hoge;
といった感じです。
よろしくお願いします。
×select substr(姓名, 1, 4) as 姓, substr(姓名, 6, 9) as 名 as hoge;
○select substr(姓名, 1, 4) as 姓, substr(姓名, 6, 9) as 名 from hoge;
そのままsubstring使えば済むって話でなくて?
区切りのスペースの位置も見つけたいならcharindexで。
>>720 charindexですね?
やってみます。ありがとうございました。
逆に連結したい場合はどのようにすればよいでしょうか?
select (姓 + 名) as 姓名 from hoge;
のようにやりたいのですが?
もしかして何も試さずに質問だけしてる?
>>723 それが答えですね。ありがとうございます。
725 :
NAME IS NULL:04/05/19 18:44 ID:vlWmNLpE
すみません。教えてください。
1 ABCD
2 BCDE
3 CDEF
....
....
のようなデータがあったとして、CDという文字列をXYに一括で置換したいのです。
1 ABXY
2 BXYE
3 XYEF
....
....
UPDATEなどの単純な命令で可能でしょうか?
REPLACE
教えてください。
とあるカラムhogeに'0120-9999-9999'とある場合
select get(hoge,1) as col1, get(hoge,2) as col2 get(hoge,3) as col3
from hoge;
のように"-"で分割して取り出したいのですが可能ですか?
728 :
725:04/05/20 09:46 ID:???
>>726 サンクス! REPLACEなんて関数があるのですね。
ありがとうございました!m(_ _)m
729 :
NAME IS NULL:04/05/20 10:12 ID:0fiheupH
SQL Server 2000 Enterprise EditionをWindows XP Professionalにインストールしたいのですが,
このOSをサポートしているのはクライアントツールのみですのような表示が出て,
クライアントツールのインストールしか選択できなくなるのですが,何か間違ってるんでしょうか・・・
宜しくお願いします.
731 :
NAME IS NULL:04/05/20 10:27 ID:0fiheupH
>>730 最新のOSに入らないものだとは夢にも思わなかったもので・・・
MSの人がノートでデモしてみせたシステムの動作環境にSQL Serverがあったもので・・・
当然動くものかと思ってました.
リンク先を見ると,Developerエディションが入ってたのかもしれませんね.
最新のかどうかじゃなくて、Server用途のOSしか駄目っつーことだべ。
733 :
NAME IS NULL:04/05/20 21:16 ID:TIYI1gd3
質問です。
壊れたmdfファイルの中身を見れるツールはありますか?
未確認になっててもうアタッチも出来ません。
宜しくお願いします。
死にそうです・・・
>>733 >未確認になっててもうアタッチも出来ません。
どんなエラーが返ってくるの?
もしかしてペアになっているldfファイルがないとか。
735 :
NAME IS NULL:04/05/22 09:56 ID:/wpulMMq
Enterprise Manageでアタッチすると
こんなエラーが出ます。
+
エラー 3624:
Location: page,cpp:2610
Expression spaceNeed <= spaceConfig && spaceNeeded <= space_usable
SPID: 51
ProcessID 496
+
データベースが壊れているみたいです。
完璧戻せなくてもいいです。
壊れていない部分だけでも見せて・・・
。・゚・(ノД`)・゚・。
オシエテ カミサマ・・・
>>735 この情報だけではちょっとわからないですね。MLの過去レスをみてもなかったですし。
MSのサポートに聞いたほうがいいと思います。
>>735 外付けHDDにDBがあるのに、その外付けHDDの電源を
入れないまま本体の電源を入れたりした?
質問なんですが・・・
SELECTで集計関数使うとき、WHERE条件に合う行が無かったら、
NULL行が返ってきますよね。
これを全部のフィールドがNULLだったら行を返さないように
したいんですが。
740 :
NAME IS NULL:04/05/24 00:42 ID:79+dFvzW
テーブルにカラムが2つa,b(主キー)があったとして
ストアドプロシージャで
select * from ~table where a = '1'
とかの検索結果が複数件あったとして
その結果の中のbの最大値1件のみを
ストアドプロシージャの結果とするには
どうしたらよいのでしょうか?
bでOrderしてTop1
742 :
NAME IS NULL:04/05/24 11:15 ID:lxU3Fa+r
SQL Server7.0 Access2000を使用してシステムを組んでいます。(OSはWin2K)
SQL Server上にビュー表を作成し、
ACCESS2000のadpでそのビュー表をソースにしたメンテナンス画面を作っているのですが、
adp上からビュー表を開き、データを触ろうとすると、
「レコードセットをしようするには、フォームが更新可能である必要があります」
というメッセージが出てしまい、更新できません。
ちなみに、SQL Serverのエンタープライズマネージャーを使ってビュー表を開くと、
データを触る(更新)ことができます。
ログを見た所、adoとかDAOとか、そこらの問題であるような気もするんですが、
ハッキリした事が分かりません。
こういった現象をご存知の方、ご教授願えればと思います。
ちなみに、主キーは全テーブルに設定してあります。
743 :
NAME IS NULL:04/05/24 11:59 ID:9uBxfpIK
SQLServer2000 Windows2000Serverを使用しています。
VB6で作成したプログラム(ADO->ODBC)でSELECTした結果をループして
ファイルに書き出す処理をしていますが、ループ処理中にINDEXの再構築
を行なうと以下のエラーになります。
[Microsoft][ODBC SQL Server Driver][SQL Server]カーソルが宣言された後にテーブル スキーマが変更されたので、カーソル操作を完了できませんでした。
以前は問題なかったのですが・・・
エラーが出なかった時から変更したことといえば、対象テーブルにDELETEトリガーを追加したことくらいです。
何か考えられる原因がございましたらご教授ください。
INSERT @HogeTab
EXECUTE sp_ExecuteSQL (@sSQL)
というようにEXECUTEの結果を@HogeTabに挿入したいのですが
「テーブル変数に挿入しているときは、ソースとしてEXECUTEは使用できません。」
とエラーになってしまいます。
何かインサートする方法はないでしょうか?
745 :
NAME IS NULL:04/05/24 20:03 ID:qNi05IWU
>>736 >>737 ありがとう御座います。
HDDは外付けではありませんでした。
そのハードの調子が良くなくて
データベースが何か処理をしている時に
固まったようなイメージかと・・・
ご指摘通りMSに聞いてみます。
ありがとう御座いました。
ちなみにデータは全て打ち直しました。
エヘッ!
(´・ω・`)
746 :
NAME IS NULL:04/05/24 22:26 ID:SsTF9g8N
ReportingService使ってる人居ますか?
サーバにVisualStudio.NET入れなきゃダメなんですか?
747 :
NAME IS NULL:04/05/24 23:06 ID:KQ7gvVVG
教えてください。
^←この記号は、T-SQLでは、どういう意味でしょうか?
ストアドをEXECした結果セットをFETCHするt-sqlを教えてくださいまし。
750 :
NAME IS NULL:04/05/26 10:37 ID:TitU1Wf2
上のほうでも少し話題になってますが、SQL Server7.0で任意の桁で銀行型丸めを
行うように実装するには結局どのように実装すればいいのでしょう?
case文で場合わけしての実装になりそうな気はするのですがよく分からなくて・・・
任意の桁が困難であれば、とにかく整数に出来ればいいです。上述のように
1.5→2
2.5→2
3.5→4
4.5→4
としたいです。
751 :
NAME IS NULL:04/05/26 10:40 ID:R5UtS5BL
ゴメソ、打ちミス
-1.5→
-2.5→
は?
>>750のパターン(切り捨て、切り上げ)
を素直に用いると、
-1.5→-1 (-1.5より大きい整数の最小値)
-2.5→-3 (-2.5より小さい整数の最大値)
となる。
小数部が0.5以外 → 単にROUND
小数部が0.5
整数部が奇数 → 切り上げ
整数部が偶数 → 切り捨て
754 :
750:04/05/26 16:31 ID:TitU1Wf2
みなさんレスありがとうございます。
>>753 小数部と整数部の取得はどうやったらいいんでしょう?
一度文字列にして、小数点の左側と右側で取得して、数値に戻す
というやり方ですか?
それか一発でやれる関数とかありますか?
CASTでintにすると、整数部が取り出せる。
元の価からそれ引けば小数部。
select文で文字列の最後についている全角スペースを除去するには
どうしたらよいでしょうか?
半角スペースですたRTRIMでよいのですが全角スペースが
どうしたらよいかわかりません。よろしくお願いします。
ベタだけど、Replaceで半角にした後RTRIM
>>758 それですと途中にある全角スペースまで消えてしまいますね。
消えはしないだろ。半角スペースになるだけで
ただ、データ的にはちょっと困るかも。
消えないですね
でもまずいです
半角になったスペースを全角に変換すれば?
もともと半角だったのが全角になるだろ。
>>763 なるほど!
何か使わない文字にいったん変換してTRIMすればよいのか
神!
>>765 「何か使わない文字」は、TRIMで消えないけどいいのかな。
>>757 select left(colA, len(replace(colA,' ',' ')))
いや… MSSQLのlen()の仕様はよくしらんが
VBと同じだとしたら、それはダメなんじゃないか?
1.全角スペースを半角スペースに変換する。(replace)
2.右端の半角スペースを全て削除する。(trim)
3.半角スペースを全角スペースに変換する。(replace)
select replace(rtrim(replace(colA, ' ', ' ')), ' ', ' ') from hogehoge
>>770 LEN
指定された文字列式の、後続する空白を除いた文字数を返します。バイト数ではありません。
(SQL Server Books Onlineより)
>>771 そうすると元々あった半角スペースが全角スペースに変わる。
'a b'が'a b'になる。
colAでは絶対に使わない文字を♪として、半角スペースを♪に置き換え、後で戻す。
select replace(replace(rtrim(replace(replace(rtrim(colA), ' ', '♪'), ' ', ' ')), ' ', ' '), '♪', ' ')
775 :
694:04/05/29 18:23 ID:???
最後が全角スペースだったら長さ-1文字を返す。
SELECT CASE WHEN RIGHT(colA,1) = (' ') THEN LEFT(colA,LEN(colA)-1) ELSE colA END FROM hogehoge
自分で言うのも何だが、
>>768で決まりだと思う。
半角スペースと全角スペースが混在していても削除できるし。
779 :
NAME IS NULL:04/06/05 21:53 ID:/NvzgXj/
SQL*plusみたいに
>col column_name for a30
とかいうカラムサイズを簡単に変えられるコマンドないの?
WITH (NOLOCK)
ってなんですか?
WITHOUT LOCK
>>780 BooksOnlineでNOLOCKを調べれ
783 :
NAME IS NULL:04/06/10 10:32 ID:gEDLuQ52
くだらない質問で申し訳ないのですが、プロシージャ内の変数の展開で聞きたいことがあります。
当方MSDE 2000を使用しています。
alter procedure sp_CreateTmp(
@table_name nvarchar(50)
)as
declare @tmp_table_name nvarchar(80)
set @tmp_table_name = @table_name + HOST_NAME()
create table ##@tmp_table_name (
a int not null primary key,
b nvarchar(10) not null
)
上記のようなストアドプロシージャを作成したいのですが、
これをtempdbのsysobjectsで確認すると、
一時テーブル名がそのまま'##@tmp_table_name'となってしまいます。
setの行を
set @tmp_table_name = '##' + @table_name + HOST_NAME()
にしても'「@tmp_table_name' の近くに無効な構文があります」と怒られ、
(##は接頭子であり、テーブル名ではない、ということでしょうか)
create table ##[@tmp_table_name]
こんなことやってみたり
create table ## + @tmp_table_name
こんなことやってみたりしたのですがどれもエラーとなってしまいます。
どうすればよいのでしょうか。ご教示お願いします。
テーブル名は変数じゃ指定できないんじゃないのか?
動的にSQL文作ってEXEC
785 :
783:04/06/10 11:48 ID:???
なるほど、そういうことでしたか。
ありがとうございました。
OracleのDESCに当たるものは何ですか?
もっといい方法があるのならスマソだが、syscolumnsとsysobjectsを
使えばいいんでは無いだろうか。
(´-`).。oO一瞬だけORDER BY … DESC だと思ってしまった。
789 :
NAME IS NULL:04/06/10 23:34 ID:7MeCOMSq
皆がよく使うDBCCコマンドは何?
showcontig
updateusage
checkdb
dbreindex
791 :
NAME IS NULL:04/06/13 20:49 ID:SZI/iiZk
SQL serverからOracleへのSQLコード変換の仕事していたら、
3つのテーブルの最小値を取得するために
@a int
@b int
@c int
SELECT top 1 @a = a1 from t1 order by a1
SELECT top 1 @b = b1 from t1 order by b1
SELECT top 1 @c = c1 from t1 order by c1
SELECT @a, @b,@c
という、幼稚なSQL文があり、思わず笑ってしまいました。
これって、
SELECT top 1 a1 as R1 from t1 order by a1
UNION SELECT top 1 b1 as R1 from t1 order by b1
UNION SELECT top 1 c1 as R1 from t1 order by c1
で書いて、VB側で行数文、まわせばOKなのに。
SQL serverで最初にSQLを学んだ方って、こんなにレベル低いのは
ごく一部か?
792 :
NAME IS NULL:04/06/13 21:35 ID:SZI/iiZk
あと、
1.SELECT TOP1 a1 from t1 oderber by a1
で最小値を求めているので
2.SELECT Min(a1) as a1 from t1 oderber by a1
MySQL,Oracle,DB2では2.の方が実行速度速いので
2.に修正してくださいとお願いしたら、
2.より1.の方が実行速度が速し、MS系では、
これを推奨していると、豪語しているのですが
本当なのですか?
793 :
NAME IS NULL:04/06/13 21:39 ID:SZI/iiZk
792ですが、コピペを間違えました。
2.SELECT Min(a1) as a1 from t1 と修正しておきます。
そんな内輪ネタを一般論として披露されても。
SQLプロファイラで実行速度を比較して突きつければ?
797 :
NAME IS NULL:04/06/14 13:25 ID:UFEjJPyg
日付型のフィールドの検索をLIKEを使用して、
select * from TEST_DB
where
日付型フィールド like '%convert(datetime,2004/02)%'
というSQL文で実行しましたが、
必要なデータが取得できませんでした。
日付型フィールドのデータはLIKEを使用しての検索は
出来ないのでしょうか?
> 必要なデータが取得できませんでした。
そりゃそうだ。日付フィールドに 'convert〜' なんてものは入ってないだろ
ある年月のデータを取り出したいなら、LIKEなんか使うより素直に
YEAR,MONTH使えばいいと思うが、いかがなものか
799 :
NAME IS NULL:04/06/14 14:23 ID:UFEjJPyg
プログラムの設計上、極力LIKEを使いたいのですよ。
select * from TEST_DB
where
日付型フィールド like '%2004%'
なら、うまく行くんですが、
select * from TEST_DB
where
日付型フィールド like '%2004/02%'
だと、だめなんですよね。
YEAR,MONTHで試してみます。
んじゃ、
WHERE CONVERT(〜,日付型フィールド,望みの書式) LIKE '%2004/02%'
とか。
801 :
NAME IS NULL:04/06/14 15:21 ID:UFEjJPyg
このまま実行したら、構文エラーになってしまいました。
"〜"には、なにが入るのですか?
ヘルプ嫁
藻前は797にあげた文を書いたときにCONVERTについて調べなかったのか?
804 :
NAME IS NULL:04/06/14 16:20 ID:UFEjJPyg
失礼しました。
しかし、必要なデータは取得できませんでした。
無理っぽいので、プログラムで制御するようにします。
( ´_ゝ`)フーン
806 :
NAME IS NULL:04/06/14 17:38 ID:iQeeg+UC
すいません、ちょっと教えてください。
MySQLにて文字列を大文字・小文字区別なしに検索したい場合は
どのようにすればよいのでしょうか?
スレタイも読めない人は放置して次の質問ドゾー
>>804 あんたには無理っぽいが、一般には無理ではないぞ。
809 :
NAME IS NULL:04/06/14 21:51 ID:vKQjEhzN
ORDER BY ASC,ORDER BY DESC,MAXと比較したら、
やっぱりMAX関数が速かった。
810 :
to:sage:04/06/14 21:55 ID:vKQjEhzN
811 :
806:04/06/14 22:02 ID:iQeeg+UC
あ。。すいませんでした。
どうしてもlikeを使うなら
select * from TEST_DB
where
CONVERT(CHAR(10),日付型フィールド,111) like '2004/02%'
111の意味はヘルプ読め。
俺ならこう書くが。
select * from TEST_DB
where
日付型フィールド >= '2004/02/01' and 日付型フィールド < '2004/03/01'
「二月末」を簡単に表す方法はありますか?
>>813 翌月頭の前日と考えればうるう年でも大丈夫。
dateadd(d,-1,dateadd(m,1,'2004/2/1'))
>>814 素直に3月1日の前日のほうがいいと思う。
わざわざ2月1日に1ヶ月足さなくても。
>>815 固定ならその通りだけどパラメータ渡しの事も考えてたのでね。
>>817 グローバル一時テーブルにこだわらないで
普通に普段使っているDB上にテーブル作るのじゃ駄目なのか?
hostnameをカラムとして持てば
ホスト別にテーブルを分ける必要もないと思うのだけど。
819 :
NAME IS NULL:04/06/16 22:27 ID:Ky2FO1ZC
WebサーバにReporting Servicesをインストールしました。
DBサーバに接続し、レポートを表示させようと思いましたが
DBの接続で失敗してしまいます。
イベントビューアを見ると
イベントID:107
ソース:Report Server
というのがあります。
1台のサーバにWeb、DBサーバを構築すれば
このような接続エラーは出ないのですが、、、
Reporting Servicesを使っている人は
どのような環境で構築されているのでしょうか?
教えてください。
ますあ
822 :
817:04/06/17 09:49 ID:???
>>818 ありがとうございます。ご教示頂いた方法でうまくいきました。
助かりました。
基本的な質問ですが、
近々SQL Serverのプロセッサライセンスを購入しようと思ってますが、
XeonやPen4のHTをONにした場合でもライセンスは1つで良いのでしょうか。
それとも論理プロセッサ基準で2個いるのでしょうか。
MSやIntelのサイトでも確認できなかったもので。
825 :
823:04/06/22 10:53 ID:???
826 :
NAME IS NULL:04/06/22 19:19 ID:2W3M33uc
NT4.0+SQLServer7.0で稼動中のシステムがあります。
販売管理、在庫管理業務のアプリケーションが稼動しています。
業務的にはそこそこクリティカル性が高いにもかかわらず、現状は耐障害性の考慮が全くありません。
データ保全面では1日1DATにDBのバックアップを取っているのみ。
ハード面ではRAIDすら組んでいません。
稼動してから約4年経っていますが、今までハード絡みのトラブルが無かったのが奇跡かもしれません。
で、今回OS・DBのバージョンアップとセットで、その辺を充実させたいと。
ハード障害発生後3時間以内の復旧というのが大まかな目安と考えています。
予算はどう頑張っても100万以下。
この条件で考えられる最適な構成って何でしょう?
ハードも含めた総合的な提案というのが初めてなので途方にくれています。
短いスパンでトランザクションログをバックアップしておいて、障害発生時は安い予備機に
バックアップを元に復旧、みたいな事も可能なんでしょうか。
というか、そもそも世間一般ではこういう時どんな構成を取るのでしょうか?
クラスタリング構成はあきらかに予算オーバーっぽですよね。
>>826 Server OS、DBMS、DAT装置、RAIDを考えると、
100万であればエントリークラスのサーバーに
ならざるを得ませんね。
DELLあたりでBTOで構成を組むのが良いのでは?
最近は、IBMあたりも安いですよ。
また、テープ装置は意外と値が張るので、USB2.0の外付けHDD
をバックアップメディアにする手もあります。速度も速いし。
テープ装置自体はそんなに高くないね
やっぱテープが高いよDLT
830 :
NAME IS NULL:04/06/24 16:24 ID:3lPvNtKT
初歩的な質問なのですがオラクルに接続(8i)の方法がわかりません
どなたか教えてください。
?
初歩の段階にいるくせに質問するときに手を抜くやつはチンカス人生確定だな
>>830 まずはBooks OnlineでDTSあるいはリンクサーバーの項目を
よく読むべし。
その上で質問すれば荒れたレスはつかないと思うが。
つーか、スレ違いじゃないのか
>>830 マルチしたほうの内容で書けばスレ違いと思われることもなかろうに。
過疎板なんだからレスが付くまで一晩待て。
>>827 中小企業でSQL Serverを使った小規模のクラサバシステムを構築していた者です。
自分で体験したハード障害はCPU、HDD、RAIDコントローラの故障なんかが
あります。これらに対応しようとすると、実質2台分のサーバ機を用意する必要が
あると思います。
用意する2台は予算などにもよりますが、同等のものを2台用意するか、予備機の
方はメインの修理中の間だけしかDBサーバとしては使わないので、少しメインより
スペックを落としてレスポンスが落ちることを我慢するか。
うちのお客さんの場合には、クライアント側のうち1台だけほかのクライアントより
CPU,メモリ、HDDを強化したものを納品して、いざというときにはそれをサーバの
代わりにするという話になっていました。
837 :
836:04/06/26 01:04 ID:???
>短いスパンでトランザクションログをバックアップしておいて、障害発生時は安い予備機に
>バックアップを元に復旧、みたいな事も可能なんでしょうか。
これは可能でしょう。バックアップは1日1回フルバックアップをとり、それ以外に一定時間ごとに
トランザクションログを取得。
リカバリ時には、最初にフルバックアップのデータをリストアし、その後トランザクションログを
かけあわせていけばよかったと思います。
838 :
836:04/06/26 01:54 ID:???
最近この手の仕事をしてないので練習がてら考えてみた。
ハードはDELLがベース。SQL Serverの値段は検索で引っかかった
適当なサイトの数値。
【DBMS】 \288,473
・SQL Server 2000 Standard Edition (10CAL)
【メイン機】 \458,943
PowerEdge 700 SATA ベーシック構成
・CPU インテル(R)Pentium(R)4プロセッサ 3.20GHz /1MB L2キャッシュ
・メモリ 1GB (2x512MB) PC3200 DDR400 SDRAM ECC
・HDD CFI Hotspare HDD3台:2台でミラーリング、1台でHotspare
シリアルATA 120GB HDD(7200rpm) 3台
・SCSI Adaptec39160
・内蔵 テープ バックアップ PV100T DAT72 (36GB/72GB)
・48xIDE CD-ROM
・15インチTFT液晶モニタ
・UPS APC Smart-UPS 700J (グレイ)PowerChute Business Edition付属
・OS Microsoft(R) Windows Server(TM) 2003 Standard Edition (5CALs)
・シルバー]標準保守サービス 1年目 当日4時間(6営業日9-17時)、
2-3年目翌営業日対応オンサイト、3年間パーツ保証
【予備機】 \234,943
PowerEdge 700 SATA ベーシック構成
・CPU インテル(R)Pentium(R)4プロセッサ 2.80GHz /1MB L2キャッシュ
・メモリ 1GB (2x512MB) PC3200 DDR400 SDRAM ECC
・HDD 非RAID構成 オンボード シリアルATA接続
シリアルATA 120GB HDD(7200rpm) 1台
・48xIDE CD-ROM
・バックアップ装置 無し
・15インチTFT液晶モニタ
・OS Microsoft(R) Windows Server(TM) 2003 Standard Edition (5CALs)
・シルバー]標準保守サービス 1年目 当日4時間(6営業日9-17時)、
2-3年目翌営業日対応オンサイト、3年間パーツ保証
しめて」税抜きで \982,359
メイン機のメモリは2GBにしたいところだが、価格の都合がつかず断念。
OS、DBMSのCALは必要数がわからないので適当に設定。
Windows NT 4.0 + SQL Server 6.5 を使っているのですが、
SELECT * FROM hogeDB WHERE hiduke = '2004-06-23'
だと何も出力されません。
SELECT * FROM hogeDB WHERE hiduke >= '2004-06-23' and hiduke < '2004-06-24'
で、希望通りの動作が出来るのですが、どこが間違っているのでしょうか。
それだと
WHERE hiduke = '2004-06-23 00:00:00'
と等価になるんじゃないか?
841 :
827:04/06/27 11:34 ID:???
>836-838
おぉぉ実体験と具体的な例ありがとうございます。(感涙)
いざという時はクライアントをサーバ代わりにというのは目から鱗です。
今は色々なメーカーのサイトを巡ってハードの事を勉強中です。
オンサイト保守の対応時間一つとってもメーカーごとに多種多様で迷います。
OSもWindows2003SBSってのもあるやうですね。
迷いまする。
>839
希望道理の動作とのことですが、hidukeが2004-06-24 00:00:01ならヒットしなく
なるかと思いますがOKですか?
842 :
839:04/06/27 13:23 ID:???
>840
>841
ありがとうございます。
2004-06-23 00:00:00 から 2004-06-23 23:59:99
までを取り出したいのです。
2004-06-24 00:00:00 が含まれても構わないです。
もっと簡潔に記述できませんかね。
WHERE format(hiduke, 'yyyy-mm-dd')='2004-06-23'
>>843 はインデックスが使われなくなるからお勧めしない
2004-06-24 00:00:00 が含まれてもいいのならbetweenを使えばちょっとだけマシになる
>>839 SELECT *
FROM hogeDB
WHERE (CONVERT(varchar(10), hiduke, 111) = '2004-06-23')
で、どうなる?「111」の意味とか詳しくはCONVERTでヘルプを検索。
と、ここまで書いて気づいた。こちらのSQL Serverのバージョンが2000だったわ。
6.5ではこの関数(引数)が正しいのかどうか手元にないのでわからない。
もしダメだったらスマソ。
エンタープライズマネージャで直にデータを入れるとエラーがでない?
直には入れるなということ?
アクセスからインポートがいいのか?
847 :
NAME IS NULL:04/06/27 18:17 ID:MFx1qAGr
DBCC文って沢山ありますが
毎日監視すべきDBCC文って何でしょうか?
selectの結果が複数あるかどうか、ない場合はその1レコードの値
みたいな感じで取得する方法ありますか?
ちょっと意味わかりにくいですけど。
うん。わかりにくいってか、わからない。
COUNTでレコード数取得じゃだめなん?
>>848 複数ある場合は何を取得したいのだ? 0件の場合は?
851 :
848:04/06/28 20:26 ID:???
レコード数取得だけだと、1件だった時にその内容を取得できないですよね。
具体的に言うと、画面にその項目の表示欄があり、1レコードだけの場合は普通に表示、
複数レコードHITした場合は”複数あり”と表示したいんです。
0件は構造上ありえないので無視でいいです。
852 :
848:04/06/28 20:38 ID:???
もう少し説明すると、
GROUP BY を使ってSELECTします
GROUP BYで指定しない列のAAAという項目の件数は
COUNT(DISTINCT AAA)として取得できますよね?
これの結果が1と返ってくるような時に、
その項目の値そのものを取る方法はありませんか?
という事です。
わかる方いたら教えてください。
クライアント側で制御すればすむって話じゃないのか?
854 :
848:04/06/28 20:50 ID:???
上は無能なのでもう仕様変更できませぬ
855 :
850:04/06/28 21:42 ID:???
>>848 >上は無能なのでもう仕様変更できませぬ
なんか泣けてくるな。そんなことまで口出しされるのか。
気の毒なので考えてみた。0件は考慮外。
SELECT Col1
,CASE Cnt
WHEN 1 THEN Col2
ELSE '複数あり'
END
FROM (SELECT Col1
,COUNT(DISTINCT Col2) AS Cnt
,MIN(Col2) AS Col2
FROM Tbl1
GROUP BY Col1) AS T1
>>855 うおっ!?
できた!できますた!
助かりました。昨日1日悩んで色々調べてもわからなかったので。。。
こんな方法があるんですね。
勉強になりました。
どうもありがとうございました。
857 :
NAME IS NULL:04/06/30 22:34 ID:Dq/58wp5
SQLServerでコールドバックアップは
どのようにしてやればよいのでしょうか?
SQLServerを停止して
データファイルをストレージなどに
保存すればよいのでしょうか?
リストア方法は、データファイルを
元の場所にコピーすれば良いのでしょうか?
ご教授願います。
>857
データファイルをストレージなどに保存すればよいのでしょうか?→×
リストア方法は、データファイルを元の場所にコピーすれば良いのでしょうか?→×
BooksOnlineで「バックアップ」を嫁。
>>857 SQLServerを停止してデータファイルをストレージなどに保存すればよいのでしょうか?
->ログファイルも一緒にバックアップしないと駄目。
リストア方法は、データファイルを元の場所にコピーすれば良いのでしょうか?
->ええ、それでOK
860 :
NAME IS NULL:04/07/01 21:51 ID:I71sF5zy
ストアドプロシージャとユーザ定義関数は
どのシステムテーブルに格納されているのでしょうか?
>>860 >リストア方法は、データファイルを元の場所にコピーすれば良いのでしょうか?
>->ええ、それでOK
DBが存在しない状態からリストアするときは
CREATE DATABASE (中略) FOR ATTACH しないと駄目。
ところでコールドバックアップしなければならない状況ってどんなの?
バックアップ中にデータ更新されたくないのなら
ALTER DATABASE で RESTRICTED_USER にすればいいと思うのだけど。
863 :
NAME IS NULL:04/07/03 10:19 ID:ugQL0hQR
ログ配布の勉強をしたいのですが
1台のマシンでログ配布って可能でしょうか?
>>863 名前つきインスタンスで1台のマシンに
SQLServerを複数インストールすればいいんじゃない?
865 :
NAME IS NULL:04/07/03 22:19 ID:ugQL0hQR
DTSでデータをセットした場合も
トランザクションログに記録されるのでしょうか?
866 :
NAME IS NULL:04/07/03 22:19 ID:ugQL0hQR
>>864 ありがとうございます。
そのやり方で1台に複数のデータベースを構築してみます。
867 :
NAME IS NULL:04/07/03 23:36 ID:ugQL0hQR
masterデータベースが更新されるときって
どんな場合なんですか?
master dbにあるテーブルが更新されるとき。
master dbにあるテーブルが更新されるときって
どんな場合なんですか?
masterデータベースが更新されるときって
どんな場合なんですか?
つまんないのでやめませんか?
master dbのバックアップって
必要なんですか?
masterに格納されている内容を調べれば、必要かどうかわかりますよ。
875 :
NAME IS NULL:04/07/06 01:51 ID:jQqWUtHu
SQLServerが入っているサーバとは別のサーバに
テープデバイスがあるんだけど、そのテープに
ファイルが作成されるように、BACKUP DATABASEコマンド
って実行できる?
876 :
NAME IS NULL:04/07/06 19:58 ID:yRVkVt1Y
Transect-SQlについて質問させてください。
環境: MSDE2000+ADP(Access2000 + ADO)
プログラムで使用するための結果セットを受け取るストアドプロシージャを
作成しています。
いくつかの処理によって、このような結果セットができあがっているとして、
テーブル: t_tmp
m_code | s_day | sm_code
───────────────
40 2004-07-05 147
40 2004-07-05 148
40 2004-07-05 144
8 2004-07-02 79
8 2004-07-03 80
8 2004-07-03 81
プログラムから配列処理できるように
m_code | s_day | sm_code
───────────────
40 2004-07-05 147;148;144
8 2004-07-02 79
8 2004-07-03 80;81
のように、m_codeとs_dayをグループ化したものに、
sm_codeを、その内容を';'区切りにしたデータとした結果セットを
SELECTするようにしたいのですが、どうすればこのような結果セットに
できるのでしょうか?
もしくは、このような場合は上側の結果セットを受け取り、クライアント側で
処理すべきなのでしょうか?
宜しくお願い致します。
>876
プログラムでやった方が制御しやすいと思うが。
878 :
876:04/07/06 23:11 ID:???
>>877 やはりそうですか。
ありがとうございました。
879 :
NAME IS NULL:04/07/07 01:12 ID:y0Sl8CNw
ログインユーザーを作成し、SQLServer認証にしました。
データベースアクセスにチェックを入れると
パスワードの確認を求められる。
パスワードを入れても違うって言われてしまう。
何故?
SQL サーバーってイイ!ですネ!
ちょっと使ってみたらすぐに
虜になってしまった。
もう手放せません。
881 :
NAME IS NULL:04/07/08 21:43 ID:UHY4o+5y
osqlを使用してSQLの結果をファイルに出力しているのですが
出力ファイルの上の行と下の方の行に
1>2>3>4>
-------------------
みたいなのが入ってしまいます。
これって消せないのでしょうか??
DTSを実行してデータをコピーしようとしたら
「一括コピーが実行できませんでした。」
というエラーが発生します。
オブジェクトはテーブルで、権限やインデックスなどは
対象外にしております。
解決方法を知っている人がいましたら教えてください。
883 :
名無しさん@そうだ選挙に行こう:04/07/11 13:46 ID:R7hMEKwd
DBCC CHECKTABLEコマンドは
どのように使われていますか?
データの整合性とかをチェック出来るようですが
整合性が取れてないとどのように表示されるのですか?
>>882 型変換やnullの扱いでこけてるんじゃないの?
885 :
882:04/07/11 23:38 ID:R7hMEKwd
>>884 DTSでオブジェクトを作成してデータを追加してるのですが
このエラーが出ます、、、
なのでテーブル構成などは同じため、型変換やnullでエラーになるとは
思えないのですが・・・
BACKUP LOGコマンドを実行後
トランザクションログの切り捨てをやっても
問題無いのですか?
なんかハンドルリークが起きてるっぽいんだが、これは短時間の接続を
やめるしかないのか?
2005のMSDEのBeta2がリリースされたようだが、人柱きぼんぬ♥
>>885 dtsrunを使ったらもっと詳しいエラーメッセージが出てきたりしない?
今のままじゃ情報が少なすぎて何もわからんよ。
>>886 BACKUP LOGをやったらログの切捨てをする意味ないんじゃないの?
890 :
NAME IS NULL:04/07/15 22:54 ID:nTkCbiEM
>>886 BACKUP LOGを実行するとログは自動的に切り捨てられますよ。
891 :
NAME IS NULL:04/07/16 00:52 ID:228Fz8Km
これを広めるだけでアトピーが治る。
Kさん 好循環 Aさん 悪循環 <日本>
(健康体) (喘息)
1.(天国・霊界が喘息であるかないかを決める)
2.K 喘息でない人 A 喘息の人は
は体力がある 体力がなくなる
3.K 変化なし A 行動力、五感(嗅覚)が鈍り感性が変化する。
4.K&A 天国・霊界は異常な感性の人間は本来人に迷惑をかけ
るから外に出てはいけないと思っている。
5.K 変化なし A アトピーになる
6.K 正常な感性 A 外に出なくなりさらに異常な感性になる。
7.K 正常な人間 A 異常な人間(レッテル)
8.K&A 死 9.K&A 来世
10.K&A 天国・霊界は異常な人間は人に迷惑をかけるので行動
を抑制する必要があると思っている。
11.K&A 天国・霊界が喘息であるかないかを決める 12.K 喘息でない A 喘息である
13.K&A 1.に戻る
これは事実。広めようぜ
解決法:寝て起きて、やな気分でも、続けるけること。
体力をつけると感覚が正常に戻り、
アトピーも快癒に向かう。 目安としてグランドを10週くらい。
あとはウォーキング 2.3時間を目安にウインドーショッピングや本屋めぐり
絶対に直す方法:
よく海外に行ってアトピーが治る話を聞くが、その場所場所に霊界が存在するので
海外に行くとほとんどの場合体力をつけると治る。 日本の中であっても、体力をつ
けると治るはずだが、 様々な理由により、日本の霊界の存在がばれてしまい、 この失態が明
るみになるので、治さないようにしている。よって、絶対にアトピーを治すには、 海外
に行き体力をつける。
http://life.2ch.net/test/read.cgi/atopi/1035703616/l50を参照
892 :
NAME IS NULL:04/07/16 13:31 ID:PQbpoalf
XMLファイルがあり、SQL Server 2000にインポートしようと思っています。
・・・が、やり方がわかりません。
Access 2003からSQL ServerをリンクしてImportXML(ファイル名)ってするのもどうかと思って・・・
[Enterprise Manager]や[データのインポートとエクスポート]からやれないものでしょうか?
環境はWin2k ServerとSQL 2k Developerで、XMLファイルはVB.netの.writeXmlで出力したものです。
894 :
NAME IS NULL:04/07/17 00:13 ID:ALdlMyfT
すいません、素人です。皆様、教えてください。
今、ストアドプロシージャにdeleteのSQL文を書いているのですが、
どうもエラー208というのが出て上手くいきません。
色々と調べたのですが、sysobjectsというのが関係してそうです。
これについて詳しい方、教えていただけませんか?
エラー 208
重大度レベル 16
メッセージ
オブジェクト名 ''%1!'' は無効です。
要するに指定したテーブルが見つからないって言われるんだが。
カレントデータベースが違ってたりしないか?
896 :
NAME IS NULL:04/07/17 10:54 ID:p3AJIBAL
質問
10秒以上とかの重い処理をすると
「時間切れになりました。」のエラーがでて
止まってしまうんですが、タイムアウトの時間設定って
どこでするかわかりますか?
EnterpriseManagerでサクっと設定できるものなんですか?
ADOならQueryTimeoutダロ
データベースの勉強用に買いたいのですが
個人で買うにはかなり高いですねえ
みなさんやはり職場のCDからパクってるんですか?
バカか?
勉強するならMSDEでいいだろ
>>898 俺割れSQL Server使ってるけどこれは許せんな
902 :
NAME IS NULL:04/07/17 20:41 ID:Iqxr+fPq
DBCC CHECKTABLEでデータの整合性の不正を
検出するみたいですが、整合性の不正ってどんな状態ですか?
そんな状態になったりするのですか?
>898
Developer Edition は如何でしょう?
904 :
898:04/07/17 21:08 ID:???
うわああっ
さっき通販で20万のスタンダード版注文しちゃいましたよ
仕事でなかなかスキル上がらなくて焦ってて…
カード決済終わってるからキャンセルできないかも
書き込み見てからにすればよかった・゚・(ノД`)・゚・
ああ20まんもあれば
あんなことや
こんなことや
やべ、電話かかってきた。。。
906 :
NAME IS NULL:04/07/18 00:24 ID:60zoO0M5
>>895 有難う御座います。
ところで、次のようなSQL文を書いているんですが、
そこでエラー208が出ます。
sysobjectsってどこにあるテーブルなのですか?
if exists (select * from sysobjects where id = object_id('dbo.log_delete1') and sysstat & 0xf = 4)
drop procedure dbo.log_delete1
GO
以下省略
907 :
NAME IS NULL:04/07/18 00:35 ID:Lsnupz7j
MSDEでAccessをフロントエンドとして使うという手法やってみてるんですが、
表示できるだけで、デザインビューにすることも、内容を編集する事もできません。
なんで?
>>906 sysobjectsテーブルはmasterデータベースにあります。
Enterprise Managerを使ってストアドプロシージャの削除のSQLを生成させてみたら
下のようなやつになった。
if exists (select * from dbo.sysobjects where id = object_id(N'dbo.log_delete1 ')
and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure dbo.log_delete1
GO
>>908 sysobjectsは全てのデータベースにある。
別にmasterだけじゃない。
910 :
NAME IS NULL:04/07/18 02:11 ID:8cJAbu7U
>>898は釣りか?
デベロッパ版のSQLサーバーなら9000円で買えるぞ
>>910 それで開発して、納品はMSDEって蟻?
912 :
908:04/07/18 08:41 ID:???
>>909 どうも、今確認してみたけどたしかに各データベースにありました。
・・・今までmasterで一元管理してると思い込んでた。
>>911 まあ、それも蟻じゃない?
ところで、客のところで問題が起きたときはクエリアナライザもEnterpriseManagerもない環境でどうするつもりだ?
(osql使いまくれれば無問題だが)。
>>902 >整合性の不正ってどんな状態ですか?
インデックスがとんでもないページを指してたりとか色々。
SQLServerのバグで起こることもあれば、
ハードウェアの異常で起こることもある。
916 :
NAME IS NULL:04/07/18 20:11 ID:Mx4CXRqG
>>914 >インデックスがとんでもないページを指してたりとか色々。
これによってどんな障害が発生するのですか?
この状態のテーブルをCHECKTABLEすると
どのような結果が返るのですか?
今までCHECKTABLEをやっても
ページ数と行数しか表示されないので、どういった結果が
表示されるのか知りたいです。
>>627 Reporting ServiceをインストールしたらHDDがパンクした件
決算期にかかっていたためReporting Serviceを止めておいただけで
何も手が付けられなかったが、Reporting ServiceのSP1がリリース
されたんでインストールし、1週間たったが今のところ異常なし。
もしかしてSP1がこんな早く出たのはこのため?
920 :
NAME IS NULL:04/07/19 15:45 ID:qFRs1PXu
>>912 色々有難う御座います。
ところで、DB調べたのですが、
sysobjectsってどこにも無いのですが。。。
6.5を使ってるんですが、そういうのも関係有るのですかね?
後、先ほど書いた下のSQLなのですが、
すでにlog_deleteというプロシージャがあり、
それを参考に新たにSQLを書けと言われて、
log_delete1というのを書こうとしているのですが、
それも関係してますかね?
if exists (select * from sysobjects where id = object_id('dbo.log_delete1') and sysstat & 0xf = 4)
drop procedure dbo.log_delete1
GO
>>920 6.5にもsysobjectsはある。権限不足で見えてないのかもね。
一度saで試してみれば?
923 :
NAME IS NULL:04/07/19 21:41 ID:RYmJLFqA
BACKUP DATABASEの実行中に
DBCC SHOWCONTIGやDBCC DEFRAGINDEXを実行しても
問題無いのでしょうか?
>919
M$相変わらずだな。もう本当ムカつく。
925 :
NAME IS NULL:04/07/19 21:57 ID:RYmJLFqA
>>919 パッチはReportingServiceをインストールしたWebサーバ側に適用するの?
それともWebサーバが接続するDBサーバ側に適用?
>>924 まあ、いつもの事だから。
本番環境にインストールしてトラぶった人は他にもいるのかな?
普通はいきなり本番しないよね。
928 :
NAME IS NULL:04/07/20 22:21 ID:nv5x7Ysk
>>926 ReportingServicesってDBサーバにインストールしてるの?
IISが必須だからWebサーバに入れてるんだけど。
で、インストール過程で使用するDBサーバを選択すると
DBサーバ側にReportServerとReportTEMPが作られる。
DBサーバにインストールしてる人って
DBサーバにIIS立ててるの?
929 :
926:04/07/21 06:35 ID:WeQ/iFDx
930 :
NAME IS NULL:04/07/23 21:32 ID:0Eia9sP3
Reporting Servicesについて詳細に書いてある
個人サイトとか無いっすか?
931 :
930:04/07/23 22:14 ID:0Eia9sP3
ReportingServicesで、Accessのレポートオブジェクトのようなことは可能でしょうか?
VBアプリケーションからSQLServerに接続し、データを取得し
そのデータをpdfで出力したいのですが、そんなことが
ReportingServicesを使用することで可能でしょうか?
932 :
NAME IS NULL:04/07/24 09:32 ID:kjXf9cAh
>>929 IISが入ってないと警告が出て
クライアントツールしかインストール出来ませんよ。
933 :
NAME IS NULL:04/07/25 01:06 ID:8BAvL6MA
934 :
NAME IS NULL:04/07/28 23:30 ID:GYfNrr9g
935 :
NAME IS NULL:04/07/29 23:29 ID:E3c6nq/5
質問です。
「マイクロソフト社のACCESSのようなGUIがあるのに、SQLを勉強する
理由を書け。」 という問題の解答はどのように書けばいいか教えて
下さい。
>>935 それって何の問題だろ?立場によっても回答は違いそうだな。
AccessのGUIで簡単に作れるようなSQLしか必要としないユーザーさんの場合は
「SQLなんぞ勉強する必要はない」って回答でもよさそうだし。
一般的なシステム開発者だと
・DBMSに対してどのような操作が可能か理解できる。
・プログラム中に埋め込む場合にはSQL文への理解は必要。
Accessに雛形作らせてもいいけど、理解できないSQLをプログラムに埋め込むのは
まずいだろ。
・AccessのGUIは万能ではない。副問い合わせを含むような場合だと
たぶんSQL知らないと記述できない。
自宅と職場でMSDNを用いて開発してるのですが
妙な症状が出て困っています
自宅PC:DBの構造変更&データの変更(コミット済み)
自宅PC:デフラグ
自宅PC:DBの完全Dump(Hogehoge.dmp)
職場PC:Hogehoge.dmpの復元(完全上書き)
職場PC:DBの変更が戻ってる・・・・
のような感じです
デフラグするとデータが壊れるってありますか?
HDDは最近買ったばかりのもので不良セクタ等のチェックも大丈夫でした
939 :
NAME IS NULL:04/07/30 23:49 ID:t+NXlAf4
>892
OPENXMLかBULKLOAD使うといいよ。
ずいぶん日がたってるけど。
>938
MicroSoft Developer Networkで開発とはまた珍しいでつね!!w
とつまらんツッコミはおいといて
つまり、自宅PCでバックアップしたファイルを職場PCに復旧すると、自宅PCで
やったはずの変更が適用されていないって事か?
単にバックアップ/リカバリの操作ミスっぽい気がするが。
>>938 DBCC CHECKDB はやってみたの?
942 :
938:04/07/31 12:21 ID:???
>>940-941 おはようございます
傷心のうちに書き込んでいたのでMSDNと書いてしまいました(w
MSDEです
DBCCでエラー内容を見たのですが件数は0
復旧できなかったDBのDMPファイルサイズが50MB
普段は25MBぐらいなのでアルェ〜???ってかんじです
いろいろやってみて結果が出ましたらご報告させていただきます
ありがとうございました
943 :
名無しさん :04/08/01 14:48 ID:ea7lsVVs
シロウトのような質問で申し訳ないが、
テキストファイルをインポートしようとすると、
ウイザードが走るのだけど、2バイトごとにしか区切れないんです。
1バイトごとにできんのかな?
944 :
NAME IS NULL:04/08/02 13:55 ID:KpgbeP4M
SQL Serverで
OracleのNVLに当たるものがISNULL
では、NVL2に当たるものは何かありますか?
NVL2はないのでCASE文を・・・
ファンクション作った方が手っ取り早いかも
946 :
大肉呆:04/08/02 16:52 ID:AzUtkbNE
すごく馬鹿な質問ですが、SQL Server 2000は WindowsXP_Proにはインストール可能でしょうか。
昨日、インストールしてみたら、このオペレーションにはサポートしていないと言われていました。
Enterpriseはだめ
DeveloperかデスクトップならOK
948 :
TORO:04/08/02 21:47 ID:wZHL5VGj
"*"が規則性無しに文字列に含まれていて、この文字列を"*"区切りに配列へ代入したいんだけど、
どうしたらいいの?言語はVBA。
文字列→ ttt*i*ss
mozi(0)= ttt
mozi(1)= i
mozi(2)= ss
>>948 激しくスレ違いな気がするが・・・
Split関数でいけるんでないの。
950 :
NAME IS NULL:04/08/07 02:53 ID:b3We31b9
>>907 フォームで書式変更がむずいとかなんとかあったかもしれないけど
普通にフォームもウェブページもできるよ。。。。
メモリが足りないかインストールがおかしいかだけだと思うよ。
普通になんでもjetと同じくらいのこと全部大体できるよん。
GUI付属してくるんじゃないの?説明読む限りだと
SQL Server Express は、ストアド プロシージャ、ビュー、トリガ、カーソル、CLR サポート、XML サポートなど、
SQL Server データベース エンジンの豊富な機能をすべて含んだ、SQL Server 2005 の軽量バージョンです。
また、SQL Server Express は、無料で簡単に使用できる管理ツールである SQL Server Express Manager が付属する形で提供されます。
詳細については、SQL Server 2005 Express Edition page の「主な特長」セクションを参照してください
>>952 レスありがとうございます。
もうちょっといじって確かめたいと思います。
954 :
NAME IS NULL:04/08/13 13:17 ID:QpjalcsX
素人質問ですいませんが、
クエリアナライザの
ユーザーテーブル→HOGE_TABLE→開くと
読み取り専用で開いて編集出来ません。
誰か知りませんか?
955 :
NAME IS NULL:04/08/13 13:50 ID:QpjalcsX
自己レスです
プライマリーキーを付け忘れてました。
MSSQLのJDBCドライバの性能が激しく悪いのは仕様なんですかね。
特にPreparedStatementでプリコンパイルされたカーソルを使った
検索がアフォみたいに遅いです。常にそうなるのか分かりませんが、
CHAR型のPKに対して検索すると、普通のStatementでの検索の
数十倍程度遅かったですね。CPUもまわりっぱなしなので
どうもドライバが著しく無駄な仕事をMSSQLにさせているらしい。
プロファイルを採ってみると、sp_opencursor, sp_fetchcursorを
使ってるのは同じなんですが、パラメタ用の領域として
nvarchar(4000)なんてのを決め打ちで確保してるのが悪そうな感じでした。
ま、PreparedStatementを使わなきゃいいんですが、それでも
.NETのSqlClientやADOに比べると、数倍程度は遅いんですよねえ。
>>956 パラメータでnvarchar(4000)になるのは
.NETのSqlCommandでParameter使った場合も同じだったような…。
>>957 .NETだと、そもそもsp_opencursorを使っていませんし、
そういうバカげたことにはならなかったですね。
ADOおよびADO.NETのCommandインタフェースのパラメタは、
明示的に型と型長を指定しますから、
そういうことにはならないのだと思いますが。
これはユーザ側にとって面倒でもあるんですがね。
SQL 2000をWS2003にインストールするにはSP3以降が必要らしいですが、どうすればSP3になるのでしょうが?
WindowsのようにSPと統合できるのですか?
分かる方おしえてください。
age
>>959 マイクロソフトWebサイトのサポート技術情報にインストール方法が
記載されているので調べてみて。(URLは忘れてしまったので勘弁)
SQLServer2000のページから辿っていける。
962 :
959:04/08/17 02:20 ID:???
963 :
959:04/08/17 02:35 ID:???
964 :
NAME IS NULL:04/08/17 04:30 ID:xbONUM4Q
SBS2003でやったけど
SQL2000入れて、直後にSP3でOK
セットアップ起動後エラーがでるけど無視して続行
初歩的な質問なんですが、ビューとストアードプロシージャの
使い分けがどうもピンと来ません。
例えば、常に同じSELECT文を実行したい時などは、どっちを
使うのがより一般的なのでしょう?
>>965 何をどう混同したらその二つで悩むことになるのだ・・
ストアドプロシージャは名前のとおりプロシージャにつかっとけ。
ただ、単にSELECT発行したいだけならどっちもいらんだろ。
ビューとテーブルの間違いじゃないのけ?
968 :
NAME IS NULL:04/08/19 02:43 ID:q/wDTfp7
郵政公社の郵便番号CSVをインポートして
都道府県・市区町村・町域にフルテキストインデックスを付けたのですが
検索でヒットする住所とヒットしない(何故か全件出る)住所が出てきます
OK:五日市
NG:佐伯区五日市
フルテキストインデックスを使うのが初めてなので
お知恵を拝借したいのですが<m(__)m>
実行したSQLは
SELECT * FROM KEN_ALL
WHERE FREETEXT(*, ”ここに住所” )
>>966 ビュー・・・パラメータ入力不可
ストアド・・・パラメータ入力可
970 :
NAME IS NULL:04/08/19 13:51 ID:C0Dekmyz
いまさらながら、SQL Server 6.5の評価版が手に入る方法ってないですかね。。。。。
テーブルの項目名の付け方なんですが
T_01
T_02
...
T_99
とするのか
s_code
s_name
s_tanka
...
とするのか名前は保守を考えるとどうするのがベターですか?
972 :
NAME IS NULL:04/08/19 16:27 ID:6PtYNdGY
業務ではまっていますぅ・・・
すみません。どなたか助けて下さい・・・
以下のような2つのテーブルがあります
testtab1
key_cd
-------
1111
2222
testtab2
key_cd
-------
8888
9999
testtab1を用いたビュー testview があり、
'12345' というリテラル定数を使用しています。
CREATE VIEW testview
AS
SELECT key_cd , '12345' seq FROM testtab1
testtab2とtestviewを外部結合した結果、
seqは NULL が帰ってくると思われるのに '12345' が帰ってきます。
select a.key_cd,b.seq from testtab2 a left outer join testview b on a.key_cd = b.key_cd
key_cd seq
------- -----
8888 12345
9999 12345
oracleやUDBでもテストしましたが、seqはちゃんと NULL が帰ってきます。
SQLServerでは、これは仕様と思って(どんな仕様じゃぁ〜!)あきらめるしかないでつか?
それともなにか上記を回避するコマンドがあるのでしょうか?
ご存知の方がいたら、助けてください。お願いしまつ。。。
>>972 同じようにやってみたけど、こっちではちゃんと NULL になるよ。
SQL Server のバージョンは?
こちらは SQL Server 2000 SP3a (8.00.818) だけど。
>>970 MSDN でさえ、SQL Server 6.5 の英語版しかないねぇ。(7.0なんて、もう無い…)
とりあえず、駄目もとで、MS に問い合わせてみたら?
975 :
NAME IS NULL:04/08/19 17:04 ID:6PtYNdGY
>>973 SQLServer 2000の 8.00.382 となっています。
原因はこの辺の違いでしょうか?
>>975 8.00.382 は SP1だね。
SP によって T-SQL の動作に変化があるようだし、セキュリティ的にも良くないから、
当てるのが難しい理由が無いのなら SP3a を当てては?
977 :
976:04/08/19 17:30 ID:???
978 :
NAME IS NULL:04/08/19 17:35 ID:6PtYNdGY
>>976 原因はそれしか考えられませんね。。。
実はパッチを当てるのは難しいのです。
現在稼働しているシステムを止められるかどうかということと、
パッチを当てるにあたり、決定的な説得材料がない事です。
MSのサイトにこの不具合の事が記載されていれば良いのですが・・・
2chで聞いたでは管理者を説得できません・・・
ですが大変参考になりました。
すばやいレスをしていただき、ありがとうございました。
979 :
978:04/08/19 17:38 ID:6PtYNdGY
>>975 977さん
大変失礼しました。
ありがとうございます!!!!
これで管理者を説得できそうです。
976さんもありがとうございました!!!!
>>971 テーブル1の T_01 とテーブル2の T_02 が同じ項目(たとえば商品コード)
だった時に混乱しないか?
>>971 T_01,T_02・・・この名まえ付け規則にした場合になにかメリットあります?
項目名がわかる名前のほうがいいと思うのだが。
>>969 意味がわからん。
ビューは仮想表でストアドプロシージャはロジック書ける処理じゃん。
なんでパラメータとかしか見ないわけ?
>>971 連番つけるようなCOBOLerみたいなことするなよ・・