5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MS SQL Server 総合スレ2

1 :NAME IS NULL:04/08/20 23:36 ID:19KWsGbt
Microsoft SQL Server (Transact-SQL) の総合スレッドです。

前スレ 「MS SQL Server 総合スレ」
http://pc5.2ch.net/test/read.cgi/db/1057061513/

SQL Serverホーム
http://www.microsoft.com/japan/sql/

2 :NAME IS NULL:04/08/21 00:21 ID:???
2げとずさー

3 :NAME IS NULL:04/08/21 01:08 ID:???
>>1


前スレの張り直し
--------------------------------------------------------------------------------------------------
拡張ストアドを登録して実行したところ

ライブラリ 'hogehoge.dll' のストアド関数 xp_hoge でアクセス違反が発生しました。SQL Server はプロセス 52 を終了しています

と表示され実行できません
DLL自体は市販のものでVBやCで組み込んで実行できるものです

拡張ストアドの呼出し手順が悪いのか
そもそも専用に作られていないDLLが呼び出せないものなのか

よろしくおながいします

4 :NAME IS NULL:04/08/21 20:41 ID:TpGD4Dog
>>3
市販のものなら hogehoge.dll を作った所のサポセンで聞いてくらさい

5 :NAME IS NULL:04/08/22 11:29 ID:???
前スレの張り直しします。

-------------------
あるDBのデータファイルが壊れたときの最新の状態までの復元方法について教えてください。
(バックアップ、トランザクションログファイルは全て残っている。)

ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/adminsql/ad_bkprst_565v.asp

に手順はあるのですが、
-----抜粋
最後に作成したデータベースのバックアップを使ってデータベースを復元します。
1.現在アクティブなトランザクション ログのバックアップを作成します。
-----
でいきなりつまずいております。

データファイルが壊れた状態でどうやってトランザクションログのバックアップ
を取ればいいのでしょうか。

6 :NAME IS NULL:04/08/22 11:55 ID:???
その URL は復元方法について書いてないと思うのは気のせいか?


7 :NAME IS NULL:04/08/22 11:57 ID:???
と思ったら下の方に書いてた。

8 :NAME IS NULL:04/08/31 19:34 ID:NJTux1oZ
IDのないテーブルにviewを作成する際にIDを付けた形で、viewにしたい。
どうすればいいでしょうか?

9 :5:04/09/02 01:48 ID:???
クエリアナライザからバックアップ取ったらうまく行きました。

とりあえず報告

10 :NAME IS NULL:04/09/02 18:54 ID:???
>5
もう解決しているみたいですけど・・・
DBが破損しているときのトランザクションログのバックアップは
no_trancateオプションでbackup logステートメントを実行します。
ちなみにこの実施はエンタープライズマネージャからできません。


11 :NAME IS NULL:04/09/04 01:09 ID:xNpdTK5u
バックアップコマンドにてバックアップを行いました。
バックアップファイル名などは、DBに格納されているのでしょうか?
今までバックアップしたバックアップファイル名などが履歴として
管理されているDB&テーブルを知っている人教えてください。

12 :NAME IS NULL:04/09/04 11:41 ID:???
DeviceにバックアップしてるならEMから確認できる。

しかし
ステートメントで、しかもファイルにバックアップしてたら確か残らなかったと思う。
(つまりこの場合はSQLに管理されていない)
ので、個別にファイルにバックアップしてしまった場合は自分で判断して復元するしかない。



13 :NAME IS NULL:04/09/05 02:24 ID:/+gfyBEq
masterデータベースをリストアするには
シングルモードでサービスを起動する必要があるのですか?
シングルモードで起動するには、どうすればよいでしょうか?

14 :5:04/09/05 03:32 ID:???
サービスのプロパティで開始コマンドに「-m」を入力し、開始ボタン押下

15 :NAME IS NULL:04/09/05 10:31 ID:/+gfyBEq
ログ配布を設定しているユーザDBに対し
フルバックアップをしてしまったら
もうログ配布は出来なくなるのですか?

16 :NAME IS NULL:04/09/05 16:11 ID:???
んなこたーない

17 :NAME IS NULL:04/09/06 09:13 ID:iAHztlGz
すれ違いだったら申し訳ないが、XPのSP2いれたらプログラムからの
接続にSQLServerが応答しなくなりました。アプリケーションもDBも
ローカルマシンなのですが、対処法はあるでしょうか?ちなみにWin
ファイアウォールは切ってます。SQLServerはSP3適用済みです。
はぁー。

18 :NAME IS NULL:04/09/06 12:36 ID:???
>>17
XPを使っていないのでよくわからない面があるけど…

マイクロソフト サポート技術情報 - 842242
http://support.microsoft.com/default.aspx?scid=kb;ja;842242

上記ページ内の
「Windows ファイアウォールを使用してポートを手動で開く」
「ポートを手動で開く必要が生じることのあるプログラム 」←SQL Server2000も入っている
を試してみては?

19 :NAME IS NULL:04/09/06 12:51 ID:6OuY8Pjq
>>17   はずしてるかも、知れませんが。
SBS2003+SQL2000ServerにWorkgroupで接続している、クライアントのWindowsXPマシンを
SP2にバージョンアップしたら、クライアントPCのEnterPrizeManagerを起動して
SQL ServerのDBを見に行こうとしたらSQL Serverを認識しませんでした。
(nullUser・・・・のメッセージがでます。調べたらID・パスワードが異なるというような?)
その他、ネットワークプリンタが動作しなくなりました。(認識していない)
ネットワークドライブをSP2にアップする前に定義してたんですが、
エクスプローラからネットワークドライブの内容を見ようとすると
ID・パスワードの要求が来ました。ID・パスワードを入れると、
ネットワークプリンタは動作するようになりましたが、SQL Serverは
認識しません。

結局ネットワークドライブを一度削除してから、再設定したら、
ネットワークドライブに対するID・パスワードの要求が来なくなり、
また、SQL Serverへの接続ができるようになりました。
XPをSP2にバージョンアップすると、ネットワークドライブの設定が
おかしくなる?(内部のIDが不整合を起こすのかな?)のでしょうか。

20 :NAME IS NULL:04/09/06 19:46 ID:MdKgnRoT
SQLServer2005の評価版ってもう使ってる?
2000から2005への移行はどんな感じでやってるの?

21 :NAME IS NULL:04/09/08 00:27 ID:Oe+LSjEK
質問。
SQL SERVERをインストール
エンタープライズマネージャを機動・・
しようとすると、「スナップインの初期化ができません」
とでて、機動すると左メニューのサーバー一覧のところが
なにも表示されません。

症例ありますでしょうか。
環境変数の設定は狂ってなさそうでした
mmcに追加もできません。

22 :NAME IS NULL:04/09/08 06:06 ID:eoItyhvr
SQL Server で、 MySQL の mysqldump のような
ダンプを取るにはどうすればよいのでしょうか?

23 :NAME IS NULL:04/09/08 07:23 ID:nKIRbi5D
>>22
DTSでダンプファイルを出力って出来なかったっけ?

24 :NAME IS NULL:04/09/08 10:57 ID:???
>>22
bcpが一番高速

25 :NAME IS NULL:04/09/08 13:17 ID:eoItyhvr
>>23-24 THX

今会社で使っているシステム、大部分は MS SQL Server
か MSDE なんですが、上の判断で最近はオープン系の
RDBMSも結構混在してきました。

たとえば HiRDB とか MySQL とか PostgreSQL とか。

いま悩んでるのが、いわゆる GUID をキーにして
作成しているテーブルが多く、その一部を上記の
RDBMSたちにぶち込まなければならないこと。
GUID に適した型なんて、MS 以外の RDBMS には
ありませんから…

皆さん、他のDBも混在してのシステムにおいて、
GUIDなどはどういう型でぶち込んでるんですか?

26 :しろうと:04/09/08 16:06 ID:qLRRm9Vl
>>25 テキストに変換してINSERTすればどう?JOINはできないけど・・・

27 :NAME IS NULL:04/09/08 16:12 ID:eoItyhvr
>>26 ふーむ、テキストに変換ですか。
それも一つの解決法ですね。

やっぱしそれくらいしか方法ないんですかね。
実質的には128ビット整数だから変換して…
ってのも考えたんですが、128ビット整数を
格納しようとすると結局バイナリオブジェクトとして
格納することになるんですよね。

GUID使った時点でMS限定になるのかな、やっぱり。

28 :NAME IS NULL:04/09/08 17:10 ID:???
>25
レプリケーション以外であえてGUIDを使うシーンってどんなの?
Accessのオートナンバー的な思想で使ってるって事か?

29 :NAME IS NULL:04/09/08 19:21 ID:???
GUIDを32ビット整数4つに分割すればJOINもできるけど面倒だな

30 :NAME IS NULL:04/09/09 00:34 ID:???
GUIDをキーにしてる時点で、あまりRDBっぽくはないな
正規化をしない方針なのかな

31 :NAME IS NULL:04/09/09 07:16 ID:W6a6rf8N
>>28 どうもそうらしい。
俺が来る前のことなのではっきりしたことは分からないんだが、
もともとは Jet のレプリケーションつかった Access アプリ
だったらしい。

で、そのときに s_GUID をキーにして設計していたらしくて、
そのまま他のテーブルの外部キーなんかもゼンブ GUID
になってる orz

その後 MS SQL Server に移行したらしいが、 GUID の使用は
引き継がれたままで、今度オプソ系の RDBMS が入ってきて
困ったことに。

>>29 なるほど。話は変わるけど、別のところで MD5 の
メッセージダイジェスト値を格納する必要が出てきて、
それはどういう型で格納するの?ってのがいま議論中。

文字列にしてインデックスつける?なんか無駄な気がする。

32 :NAME IS NULL:04/09/09 11:59 ID:wL9F3VFG
初めてDBを使おうとしています。
http://www.atmarkit.co.jp/fdotnet/basics/adonet01/adonet01_01.html
の記事をみてSQL Server 2000を使ってみようと思い立ったんですが、
とりあえず http://www.microsoft.com/japan/sql/evaluation/trial/2000/ をインストールして
みたのですが、ヘルプをみても使い方がサッパリ分りません。
インストールするとタスクトレイにDBのアイコンがでますが、これのサービスをスタートしようとすると
エラー1069(ログオンに失敗したため、サービスを開始できませんでした)となってしまいます。
これってまず何をすればいいんでしょうか?


33 :NAME IS NULL:04/09/09 15:03 ID:???
>>31
全部BASE64でテキスト化しちまえ
領域長のムダが気にならないんなら
普通にヘキサでテキスト化すればよし。元の倍になるだけだしな。

いずれにせよ一手間入るが、まあやむを得ないだろう。


34 :NAME IS NULL:04/09/09 19:58 ID:W6a6rf8N
>>32 うーん、MSDE で十分だと思うんだが…
http://kinshachi.ddo.jp/kurage/html/MT/comp/archives/000461.html

35 :NAME IS NULL:04/09/09 20:00 ID:W6a6rf8N
>>33 やっぱそういうことになりますか。
でもそのうちSQLの規格で256ビット符号なし整数とかの
型も用意されるんだろうな…とか妄想してみる。

36 :NAME IS NULL:04/09/09 22:39 ID:???
>>35
IPv6の128bitアドレスを格納する型は出てくるんじゃないかな


37 :NAME IS NULL:04/09/10 01:41 ID:AEyu2ovR
>>36 それは将来的に確かに必要そうだなぁ。

38 :NAME IS NULL :04/09/10 18:30:34 ID:???

客先の営業所5箇所にスタンドアロンWin2KでVB+Accessで動くシステムがあります。

本社にWin2KServer+SQLServer立ててネット経由でレプリケーション(営業日のみ1日2-3回)したいのです

SQLServer x 2 のレプリケーションしか経験なく、ネット等で調べてもイマイチだったので

39 :NAME IS NULL:04/09/10 18:33:42 ID:???
そうですね。

40 :NAME IS NULL:04/09/11 21:11:13 ID:ZlGp2E4m
設計の定石だと思うのですが,調べても載っていないもので教えていただきたいのですが,
可変長配列の内容をDBに入れたいときはどうするべきなのでしょうか?
想定しているのは,[code], [name], [URL1], [URL2], [URL3]・・・というレコードで,
codeとnameの組み合わせは一意なのですが,URLが幾つ入るかは不明なのです.

方法としては,
1: テーブルを2つに分け,片方は[code], [name], [id]として,別テーブルに[id], [URL]のレコードを
延々と追加していく.
でも,URLって最大でもそんなに多くの数はいかないと思うし,この方法は始めてDB使う自分には難しそう.

2: もう,最大でURLは30とか決め打ってしまう.[size]カラムを追加して使用[URL]数を管理する.
これにしようかと思っているけれど,何か大人気ない気もして・・・

3: 何かトークン文字を決定して,それをはさんで文字列を連結して,ひとつの[URL]に入れてしまう.
でも,確か,URLってスペースとかコンマとか,全ての文字を使う可能性もありますよね・・・

環境はSQL Server 2000で,言語はC#でADO.NETでDataGridなんかも使っている部分もあります.

41 :NAME IS NULL:04/09/11 21:54:29 ID:???
[code],[name],[URL] というテーブルに延々と追加していく



42 :40:04/09/11 22:11:56 ID:ZlGp2E4m
>>41
なるほど,そういう風に入れていって,
読み出したい時には,[code], [name]をキーにしてマッチするURLを全て取得すれば
良いのですね.

しかも,入れていくのは必ず必要ですが,読み出しが発生する確立は低い仕事なので,
それが最も適していると思います.

どうも有り難う御座いました.

43 :NAME IS NULL:04/09/11 22:19:41 ID:???
確立(w

44 :NAME IS NULL:04/09/11 23:09:57 ID:iYQEts4e
2000から2005への移行はどうやってやる予定?

45 :NAME IS NULL:04/09/12 19:08:06 ID:Sr0+DAmC
データ件数500万のテーブルから
いろいろ集計用にデータ抽出ってのは無理がある?
まだ許容範囲?




46 :NAME IS NULL:04/09/12 20:46:19 ID:???
インデックスとサーバスペックの問題。

47 :NAME IS NULL:04/09/12 21:38:49 ID:???
まともなDBMSならその程度の件数大した事無い。
そもそも、ただ件数だけを語っても無意味。

48 :NAME IS NULL:04/09/15 09:38:45 ID:???
保守とおまけ
「XP SP2とSQL Serverの問題解決リソース集」
(・∀・)つ ttp://itpro.nikkeibp.co.jp/free/NT/WinColumn/20040907/1/

49 :NAME IS NULL:04/09/15 23:28:27 ID:Lu6Yk6lY
インデックスってのがいまいちわからない。
目次をつけるようなものって概念はわかるが
どうしたいときに、どうしたらよいのかがわからない

50 :NAME IS NULL:04/09/15 23:34:37 ID:???
>49
電話帳に索引がなかったり五十音で並んでなかったら困るだろ?


51 :NAME IS NULL:04/09/16 04:05:44 ID:???
FUNCTIONの中でINSERT INTO使って直接テーブルに新しいデータ登録しようとすると怒られる。
もう意味わからねーっす。

52 :NAME IS NULL:04/09/16 04:20:19 ID:???
>>51
エラーメッセージは何?

53 :51:04/09/16 04:48:01 ID:???
>>52
サーバー : メッセージ 443、レベル 16、状態 2、プロシージャ **********、行 23
FUNCTION 内での 'INSERT' の使い方が無効です。

これ。
ググってみたけどさっぱり症例が出てこねーっす。
負荷を減らしてみたいからUDF使ったらこれだ。さっぱり訳分からない…。
VALUESで設定する変数のデータ型は何度も確認したが、ちゃんと合っている。
マジ訳わかんねーっす。

問題のSQL文はこちら :
INSERT INTO テーブル名(
列名1,
列名2,
列名3,
列名4
)VALUES(
@変数1,
@変数2,
@変数3,
@変数4
)

54 :NAME IS NULL:04/09/16 05:12:41 ID:???
>>53
FUNCTIONの中で普通のtableに対するinsert/update/deleteは出来ない。
FUNCTIONの中だけで使うtable変数ならOK。
詳しくはBooksOnlineでCREATE FUNCTIONの解説を読むべし。

ストアドで置き換えるしかないんじゃないの?

55 :51:04/09/16 05:51:00 ID:???
>>54
あ”ーホントだ。解説に書いてありました。
ストアドで置き換えます…ご迷惑お掛けしました。

56 :NAME IS NULL:04/09/17 01:26:44 ID:SDsxdxim
ログ管理で、最近時間切れ(TimeOut)エラーが出るように
なってしまいました。デフォルトの30秒を引き伸ばすには
どうすればよいの?



57 :NAME IS NULL:04/09/18 09:51:03 ID:tejhIpmq
SQLServer2000で
セキュリティ監査関連のトレースをテーブルに吐いているんだけど、
あれって初めに設定するレコード数越えるとそれ以上もう書き込まなくなりますよね。

あのテーブル定期的に見るツール作ってセキュリティ監視したいと
思って居るのですが、ずっとはき続ける設定などはあるのでしょうか?

吐き出し先がファイルだったらローテーション出来るけど、中身はバイナリになっちゃうし。
プロファイラで確認するにしても、人手で事後になっちゃいますよね。

リアルタイムっぽく不正ログインなど検知したいような場合はどうすれば良いんでしょうか。


58 :NAME IS NULL:04/09/19 11:05:29 ID:???
>>50
電話帳なんて使わないから分からん

59 :NAME IS NULL:04/09/19 11:31:15 ID:???
>>58
んじゃ、辞書みてみ。

60 :NAME IS NULL:04/09/19 12:42:34 ID:???
>>56 なんのタイムアウトなのかを書けよ。

まず、SQL Server にはクエリタイムアウトは存在しない。ロックタイムアウトがあるのみ。
そのロックタイムアウトもデフォルトでは無限に設定されている。
ロックタイムアウトを設定したいなら SET LOCK_TIMEOUT を使う。

クエリタイムアウトが発生している場合、それは SQL Server ではなく
アプリケーション(ミドルウェア)の仕業。ADO, ODBC, JDBC など使っている
ミドルウェアを提示しないことには、なんとも言えない。

61 :NAME IS NULL:04/09/23 13:24:55 ID:xcLAWOnH
皆が使ってるシステムのデータサイズってどれくらい?

62 :NAME IS NULL:04/09/23 15:08:12 ID:???
データサイズってなんでつか?

63 :NAME IS NULL:04/09/23 22:12:31 ID:xcLAWOnH
データファイルのサイズのことなり

64 :NAME IS NULL:04/09/23 22:13:05 ID:xcLAWOnH
うちは15GBくらいなんだけど少ない方なのかなぁ

65 :NAME IS NULL:04/09/23 22:14:11 ID:???
データファイルのサイズに何の意味が?
増やそうと思えば幾らでも増やせる訳だし・・・

66 :NAME IS NULL:04/09/23 22:41:25 ID:???
データファイルのサイズが、○○GB超えると動作が不安定になるとかって、
ベンダーに言われて聞いてみたとか。

67 :NAME IS NULL:04/09/23 22:44:11 ID:???
ちなみに、7.0、2000ともに製品の仕様上は、32TBが最大だったはず。

68 :NAME IS NULL:04/09/24 01:21:36 ID:???
MSDEは2GB

69 :NAME IS NULL:04/09/24 01:40:05 ID:p56C03FH
オラクルは4GBの倍数に近くなるとデータが壊れることがあるって
怖いことがサラッとサポートレターに書いてあったな
まあ保守に丸投げだから俺の知ったこっちゃないが

70 :NAME IS NULL:04/09/24 01:53:29 ID:???
スペシャル初心者です

phpmyadminの使い方がいまいちよくわかりませぬ

movable typeでMySQL使う方法でインストール
ログインして左側にテーブル?がズラーと出てるんだが
これって管理しにくい

ログインしてMovableTypeという感じのフォルダみたいなのをつくって
そこから管理したいんだが

ログインしてトップから左側にmt_ffffff mt_xxxxxxxみたいなのがズラーと並ぶというのは
直接database設定で mysqlx.db.sakura.ne.jpを指定したからだと思うんだけど

管理しやすいいい方法ないですか?
フォルダのようにして例えばMT xoops etcがログイン時に出てくるようにしたい

そして各々MT xoops etc をクリックすればそれぞれのデータが出るようになれば最高
できるんだろうけど設定の仕方がまったくわかりません
どうかご教授おながいします

はっきりいってMySQL,phpmyadmin知ってる人にとってはクソみたいな質問でスマソ
ほんまわからん

ウィンドウズ使い慣れてるが
「フォルダの作り方わからない」って聞かれてるようなものだからな、きっと


71 :NAME IS NULL:04/09/24 05:07:54 ID:???
>>70 スレタイを読み間違えたな(笑
mysqlについて語ろう
http://pc5.2ch.net/test/read.cgi/db/1056947097/
で聞くように。

72 :NAME IS NULL:04/09/27 16:03:41 ID:wde5Qh77
mysql_queryから取得した結果レコードで一番後ろのレコード
に移動するにはどうしたらよいのでしょうか?


73 :NAME IS NULL:04/09/27 16:59:37 ID:???
>>72
>>71


74 :NAME IS NULL:04/10/03 01:00:57 ID:5Mrnex2+
PDAとデスクトップPCを使ったシステムを考えています。
「Microsoft SQL Server 2000 Windows CE Edition」について伺いたいのですが、

1.この製品だけでPDA内でRDBMSとして機能しますか?
2.RDBMSとして機能した場合、デスクトップPCからも参照が出来ますか?
3.2が不可能な場合、どのような条件で可能になりますか?
  SQLServer2000がデスクトップPCにインストールされていれば可能になりますか?

開発環境は「VisuakStudio.NET 2003」+「.NET CompactFramework」
を想定しております。

申し訳ありませんが、どなたかご回答頂けませんでしょうか?

75 :NAME IS NULL:04/10/03 01:07:30 ID:???
>74
俺が知ってるのは鯖CE1.0だけど、
1→○
2→×
3→デスクトプーから直接CE鯖のDBを読む手段は無い。
  レプリケーションして間接的に参照する事ができるのみ。

鯖CE落としてBooksOnline読むほうが早いんでないの?


76 :NAME IS NULL:04/10/03 01:28:30 ID:???
>>75
早速のご回答ありがとうございます。
なるほど、デスクトップPCから直接
PDA内のDBにアクセスは出来ないわけですね。
詳細についてはBooksOnlineを参照させて頂きます。
取り急ぎ1点だけ確認させてください。

デスクトップ内のDBの内容の一部を
PDA内のDBに反映させることは
SQL文を使った操作だけで実現するのは不可能と言うことでしょうか?

77 :NAME IS NULL:04/10/03 01:50:45 ID:???
少なくとも、Accessのリンクテーブルみたいなノリでお手軽に扱うことは出来ないとだけ言っておくよ。
ここで語るよりは、何ができるのかサンプルを眺めた方が早い。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/sqlce/htm/_lce_programming.asp
の「レプリケーション」「RDA」あたりを読んでみればイメージをつかめるかと。



78 :NAME IS NULL:04/10/05 18:38:00 ID:dDc9pyND
SQLServer2000で中国語を扱いたいのですが、
どうすれば良いのでしょう?
どなたかご教授お願いします…。

79 :NAME IS NULL:04/10/05 20:00:01 ID:???
>>78 Unicode でいいんじゃないか?
それとも GB とか Big5 をそのままぶち込まなけりゃならない理由でも

中国語のことよくわかんないけど、
Unicode とのマッピングがちゃんと整備されてない?

80 :NAME IS NULL:04/10/06 00:08:43 ID:???
NVARCHAR使えばUnicodeで中国語も入れられるよ。

81 :NAME IS NULL:04/10/06 01:37:59 ID:Brrsw9Rf
Windows2003Server上のSQL Server2000とWindowsNT4.0上のSQLServer6.5で
レプリケーションを組もうとしてるんですけど(2000がパブリッシャ)
SQLServer2000のEnterpriseManager上で6.5のサーバに接続ができなくてサブスクライブに失敗してしまいます。
2000と6.5でレプリケーションはできるみたいなんですけど、手がかりが無く困り中。
なにか手がかりとかヒントとかご存じの方いたら教えてほしいです。
細工が必要なんでしょうか。

82 :NAME IS NULL:04/10/06 11:14:35 ID:???
ストアドプロシージャをシリアライズ化するにはどうしたらよいですか?

83 :NAME IS NULL:04/10/07 03:05:30 ID:UPbzabvY
WindowsXP上のアプリから、MS SQL Server2000(リモート)にODBCで
接続したいです。教えてください。

1.sqlsrv32.dllがODBCドライバですね?
2.WindowsXPをインストールすると、このODBCドライバは自動的に
インストールされるのでしょうか?(いつも入っているみたいなので)
それとも、ODBCドライバのインストール作業が要りますか?

84 :NAME IS NULL:04/10/07 12:37:09 ID:???
>>83

> 1.sqlsrv32.dllがODBCドライバですね?

Yes

> 2.WindowsXPをインストールすると、このODBCドライバは自動的に
> インストールされるのでしょうか?(いつも入っているみたいなので)
> それとも、ODBCドライバのインストール作業が要りますか?

MDACコンポーネントをインストールするとODBCドライバもインストールされます。
WindowsXPはインストール時に標準でMDACが組み込まれるので別途作業は必要
ないです。

85 :NAME IS NULL:04/10/07 18:27:49 ID:HW+iltsm
show databaseしてもtestしか表示されません。
本ではmysqlデータベースも表示されるとあるのになぜですか?


86 :NAME IS NULL:04/10/07 19:03:28 ID:UPbzabvY
>>84
ありがとうございます!

87 :NAME IS NULL:04/10/07 19:11:26 ID:???
>>85
>>71

88 :85:04/10/07 19:17:08 ID:HW+iltsm
>>87
おおしまった。

89 :NAME IS NULL:04/10/07 19:26:39 ID:3Z16q19i
PHPがらみの質問で板違いかもしれませんが、SQL Serverとの連携で情報お持ちの方が
いらっしゃれば、と思いこちらでも書き込みさせていただきました。

PHPからSQL Serverに接続したいのですが、接続がうまくいかず困っています。
SQL Server(データベース)自体は自家サーバー上に設置してあり、このデータベースに
レンタルサーバー上にあるPHPページから接続してデータを処理したいのですが、
そもそもこれは可能でしょうか?

PHPマニュアルのサンプルコードを参考に
$conn=odbc_connect("DRIVER=SQL Server;SERVER=".$ser.";UID=".$user.";PWD=".$pass.";
DATABASE=".$db.";Address=".$ser.",1433","","");

という感じで接続を試みているのですが、

「S1090 文字列またはバッファの長さが無効です」というODBCエラーが出ます。
このエラーの意味するところがまた良くわからず閉口してます。

PHP+SQL Serverの連携に関する情報があまりなくて、困っています。
ヒントでも結構ですのでよろしくお願いいたします。

90 :81:04/10/07 22:30:36 ID:???
81です
自己解決しました
失礼しました。

91 :NAME IS NULL:04/10/08 14:11:28 ID:???
>>89

マルチポストしないでください。

【PHP】質問スレッドpart23【php】
http://pc5.2ch.net/test/read.cgi/php/1096965398/105-

からの一連のレスで結論が出ているのではないですか?

92 :NAME IS NULL:04/10/08 16:11:41 ID:???
まるぽ

93 :NAME IS NULL:04/10/08 20:32:14 ID:dArSDjPJ
>>92 ま゛っ!

94 :NAME IS NULL:04/10/09 01:15:42 ID:cNFK6W7J
TRUNCATE TABLEを行うとトランザクションログに記録されないんですよね?
ということは、TRUNCATE TABLE実行後は、フルバックアップする必要があるということですか?

95 :NAME IS NULL:04/10/15 01:22:52 ID:???
MSDE2000 を MS からダウンロードして、会社の鯖に導入して社内イントラ用の DB サーバに
使うことは、ライセンスの問題はあるのでしょうか?
それとも、会社でみんなでつかうには Office Dev. や SQL Server2000 Dev. など再頒布権の
あるツールをひとつ買わないといけないのでしょうか。ご存知の方、教えて下さい。

96 :NAME IS NULL:04/10/15 02:21:08 ID:???
>>95
再頒布権はオンラインで取得できる。
http://www.microsoft.com/japan/sql/msde/

↓はFAQから引用
Q. MSDE を自分のアプリケーションで使用したいのですが、マイクロソフトの製品やサービスを購入しなくても MSDE を入手できますか ?
A. はい。MSDE は無償で ダウンロード できます。

Q. 開発しているアプリケーションの一部として MSDE を含めたり、再頒布することはできますか ?
A. はい。登録 していただくことで MSDE の再頒布権を無料で取得できます。また、以下の製品またはサービスのいずれかでランセンスを取得して MSDE を入手している場合は、アプリケーションの一部として MSDE を再頒布することを許諾します。

ASP.NET Web Matrix*
MSDN® ユニバーサル サブスクリプション、エンタープライズ サブスクリプション、およびプロフェッショナル サブスクリプション
Microsoft Office XP Developer Edition
SQL Server 2000 Developer Edition、Standard Edition、および Enterprise Edition
Microsoft Visual Studio® .NET Architect Edition、Developer Edition、および Professional Edition*
* ASP.NET Web Matrix をダウンロードして MSDE を入手した場合、ASP.NET Web Matrix を使用して開発するアプリケーションに組み込む以外の目的では使用できません。

97 :95:04/10/15 07:03:51 ID:???
>96
ありがとうございます。そのFAQをみると、
・Office Dev. などで入手した MSDE -> Office Dev. など入手元ツールで作成したアプリにのみ
 添付可。例えばOffice Dev. の MSDE とメモ帳で作った ASP をセットで再頒布は出来ない。
・オンラインで入手した MSDE -> 自分で使うアプリに自由に使えるが、そのアプリを第3者に
 販売・譲渡するには登録して再頒布権を入手する必要がある。
・アプリに MSDE を添付しないで第3者に公開し、(Macromedia Flash Plugin のように)利用者
 それぞれが個別に MS から MSDE をダウンロードするようにさせるのは可。
となるのでしょうか。
 「使用権」は自分や社内など限定された環境で使う権利、「再頒布権」は第3者にアプリとセットで
配布する権利と解釈しました。

 当方では顧客などに再頒布することは無くイントラでの使用のみなので、Web から
ダウンロードした MSDE2000 を登録無しでつかうことにします。

98 :NAME IS NULL:04/10/18 09:30:24 ID:???
vbでbegintranでトランザクション中のとき
ストアドを呼びそのストアドでも begin tranをしている
場合、このトランザクションは入れ子で働いてくれますか?
それともvb側のトランザクションと同一視されますか?

99 :NAME IS NULL:04/10/19 13:11:03 ID:uvONeASE
SQL文で、既存の列から IDENTITY プロパティを削除するにはどうすればいいでしょうか?

100 :NAME IS NULL:04/10/21 10:28:55 ID:???
>>99
IDENTITYを削除テーブルを新規に作成し、元データを入れる。
元テーブルの名前を別の名前にrenameし、
新規に作成したテーブルの名前を元のテーブル名にrenameする。

101 :NAME IS NULL:04/10/21 10:54:49 ID:???
SQLコマンド中で、別のファイルのSQLを処理できますか?

102 :NAME IS NULL:04/10/21 11:46:05 ID:???
な に を 言 っ て い る の か わ か り ま せ ん

103 :NAME IS NULL:04/10/21 11:47:27 ID:???
Oracleでいうところの@ファイル名みたいな事?

104 :NAME IS NULL:04/10/21 12:13:57 ID:???
そんな感じです

105 :NAME IS NULL:04/10/21 21:55:46 ID:???
!!isql

106 :NAME IS NULL:04/10/22 09:33:16 ID:???
>> 105
なるほど!
ありがとう。

107 :NAME IS NULL:04/10/23 20:04:48 ID:???
PGやってるんだが、バックエンドがSQL Serverなので
勉強中です。
本読むと管理関係にかなりの部分が割かれてるけど、
これらの知識はPGやSEにとっても役に立つの?

108 :NAME IS NULL:04/10/24 00:30:10 ID:???
>>107
起たない

109 :NAME IS NULL:04/10/24 01:21:51 ID:???
   ∧_∧
  (;´∀`)<ちょっと勃った
  人 Y /
 ( ヽ し
 (_)_)



110 :NAME IS NULL:04/10/24 13:12:02 ID:???
>107
全体の設計や運用に関わる立場なら役に立つ。
というか、それ知らないとまともに運用できない。
PGレベルだと直接役に立つ機会は少ないと思うけど、知っといて損は無いよ。
アフォSEが作ったDBに突っ込みいれる事もできるし。


111 :NAME IS NULL:04/10/24 15:47:36 ID:qYETNpDv
>>110
嫌われるからやめた方がw

112 :NAME IS NULL:04/10/25 01:21:18 ID:???
>190

ワロタw

不毛な残業をしたくなければ勉強すべき。

113 :112:04/10/25 01:22:09 ID:???
>109の謝り

114 :NAME IS NULL:04/10/25 02:46:19 ID:/9sdc+cH
覚えといた方が良いでしょう。
PGだから覚える必要ないなんて事はない

115 :NAME IS NULL:04/10/25 03:06:30 ID:???
まあ紙一枚の仕様書(メモだろ)を平然と渡すSEもいるからなぁ・・・全部PGが作ることになる

116 :NAME IS NULL:04/10/25 15:19:09 ID:???
>107
 プログラム&デバッグの最中に、間違って変な(異常に時間のかかるような) SQL 投げた時に、
即座にサーバー側でその SQL にキャンセルかける(プロセスkill)くらいのことはできたほうがよ
いかと(w

#で、調べるとインデックスが上手く機能してなかったりするんだよな、これが。

117 :NAME IS NULL:04/10/25 19:07:04 ID:hgGHLtGd
ttp://www.atmarkit.co.jp/fnetwork/tokusyuu/01sql99/sql99_1b.html

にある再帰 SQL 照会1: を MS-SQL Server 2000 で実現させたいのですが、
SQL Server 2000 ではこのような再帰 SQL は使えますでしょうか?

試してみたのですが、
キーワード 'WITH' 付近に正しくない構文があります。 となってしまいます。

アドバイス頂ければ幸いです。

118 :NAME IS NULL:04/10/25 20:25:32 ID:???
無理。SQL Server 2005 で実装されてるから、もちょっと待って。あと1年くらい。

119 :NAME IS NULL:04/10/27 22:52:41 ID:???
SQL Server 7.0で監査ログはどの程度の情報を収集できますか?

120 :NAME IS NULL:04/10/29 05:11:16 ID:???
現在、SQLServer2000+VB6.0で発中なのですが、
1.Begin Transaction
2.TableAをUpdate

以上をクエリアナライザから実行して、トランザクションを終了させない状態で

3.VBで作成したアプリからTableAにSelect文を実行(ADO2.7使用)

この時、3.ではSQLServer2000からレコードを取得できないでタイムアウトと
なってしまいます。SQLServer2000ではこのような時はReadOnlyモードで
TableAを読み込むことはできないのでしょうか?
※ちなみに、3.を実行してから、タイムアウト発生前に1.のトランザクションを終了させると
TableAからレコードを取得してきます。

121 :NAME IS NULL:04/10/29 06:11:33 ID:???
>120
もっと良い方法があると思うのですが
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
で一応読み取れます。あまりおすすめしませんが。


122 :NAME IS NULL:04/10/29 22:33:57 ID:???
>>120
RollBackしてテストデータを元に戻したいとかか?

123 :NAME IS NULL:04/10/30 10:15:21 ID:???
select * from TableA



select * from TableA (READUNCOMMITTED)

124 :NAME IS NULL:04/11/02 23:25:46 ID:???
NT4SP6+SQLServer7SP4で使用していましたが
RAID構成のディスク障害の際に
OSおよびSQLServerのファイルが壊れてしましいました。
OSはなんとか修復して復旧しましたが
SQLserverを起動しようとすると
エラー2140:WindowsNTの内部エラーが発生しました
とでます。
SQLServerの再インストールしかないでしょうか?


125 :NAME IS NULL:04/11/04 09:45:20 ID:???
Enterprise Managerについての質問をさせて頂きたく。

当方がW2K上のEnterprise Managerで作成したビューがあるのですが、対象となったデータベースはフィールド名、テーブル名とも2バイト文字で作られているものでした。
簡単な例を挙げると
「SELECT * FROM 管理者 WHERE マネージャーCD = '100'」
といったもの。

ところがこれをXP使用者がEnterprise Managerを使って見てみた所

「SELECT * FROM 管理者 WHERE マネ ー ジャ ー CD = '100'」
                        
と、「ー」の両側に半角スペースが入力された形になっていたのです。

・普通に実行して結果は出力可能
・この状態で保存しようとすると
「[定義の表示]に出力列が無いか、またはFROM句に項目が含まれていません」
とエラーメッセージが出て保存が出来ない。
・半角スペースを消して実行しようとすると実行できず、半角スペースが入った形に「修正」されてしまう。

等の現象が発生、XP使用者からは修正できないものになってしまいました。
因みにXPのSP1、2共に同じ現象。

このような現象についての心当たり、解決方法に付いて御存知の方はいませんでしょうか。

126 :NAME IS NULL:04/11/04 10:13:51 ID:???
>>125
たぶんこれでしょう
http://support.microsoft.com/default.aspx?scid=kb;ja;327056


127 :125:04/11/04 11:23:00 ID:???
>>126
有難うございました。m(_ _)m

128 :猫屋敷:04/11/04 15:37:58 ID:/u63hAA3
[name]
bird
dog
dog
bear
cat
cat
cat
tiger
....

という感じのレコードがあるのですが、nameが同じレコードを
附番して

[name] [number]
bird.............1
dog.............1
dog.............2
bear...........1
cat..............1
cat..............2
cat..............3
tiger...........1
....

という感じにしたいのですが、自動的に附番させる方法はないでしょうか?


129 :NAME IS NULL:04/11/04 15:47:10 ID:1/6p/jx/
フロントエンドにACCESS2000で利用しています。
SQLseverの一時テーブルをACCESSのリストボックスで
表示させることはできないのでしょうか?
Me.ListBox.RowSource = "SELECT * FROM #Temp_Table"
のような記述をしてみましたが、エラーも起こらず何も表示しません。
#Temp_Tableとその中身の存在は確認済みです。
どなたか解説お願いします。

130 :NAME IS NULL:04/11/04 16:26:07 ID:???
>>129
どういうロジックか分からないが、
#だと、テンポラリテーブルを作成する
プロセス(ストアド等)が終了するとクリアされる。
ログイン中消さないなら##を使う。
その辺りは大丈夫なのか?

131 :NAME IS NULL:04/11/04 16:34:17 ID:???
MSのサイトには、Accessから一時テーブルアクセスするなら
ストアドプロシージャ介して、というドキュメントがあったけど。


132 :129:04/11/04 16:45:36 ID:1/6p/jx/
>130 それは確認しました。
>131 納得しました。
ありがとうござました。

133 :NAME IS NULL:04/11/04 22:28:10 ID:???
>128
このテーブルにtimestamp列を
追加しても問題ないのであれば

SELECT
d.name,
c.seq
FROM (
SELECT
a.name,
COUNT(a.name) AS seq,
a.timestamp AS keycol
FROM animal as a, animal as b
WHERE a.name = b.name
AND a.timestamp >= b.timestamp
GROUP BY a.name, a.timestamp
) as c, animal d
WHERE c.keycol = d.timestamp

134 :NAME IS NULL:04/11/05 00:38:17 ID:???
次期SQL SERVERのYukonはパフォーマンス良くなってるのでつか?

135 :NAME IS NULL:04/11/05 01:06:26 ID:???
>>134
要求マシンスペックも高くなってるけどな・・・


メモリを大量に積めば間違いなく今より速いと思われ

136 :初心者:04/11/05 11:39:23 ID:1ZTV7vdh
質問します。

次のような環境がネットワーク上にあります。
Aマシン:Win2000+SQLサーバー2000
Bマシン:Win2000+SQLサーバー2000

やりたいことは、
AマシンのC:\Databaseというフォルダー内にある 「Cost」というデータベースを、
BマシンのC:\Databaseというフォルダー内に新規にコピーしたいのです。
BマシンのCドライブ内にDatabaseというフォルダーは作成済みです。

Enterprise Managerを使い、まず、Bマシンのプロパティで、
「データベースの設定」タブ内の「新規データベースの既定の場所」の、
「既定のデータディレクトリ」と「既定のログディレクトリ」をC:\Databasに設定しました。
設定後、プロパティを再度確認すると、間違い無く設定はされています。
念のため、Bマシンのデータベースマネージャを再起動しています。

この状態で、Enterprise Manageで、Aマシンのデータベース内の「Cost」を
マウス右ボタンでクリックし、全てのタスク==>データベースのエクスポートの順に選び、
Bマシンへ新規にコピーしています。
コピー処理終了後、Bマシンに正しくコピーできていることは
Enterprise Managerで確認できるのですが、
コピー先フォルダーがC:\Databaseでは無く、
C:\Program Files\Microsoft SQL Server\MSSQL\dataになってしまいます。

C:\Databaseにコピーするにはどうしたらいいのでしょうか?
どなたか、教えてください。よろしくお願いします。




137 :NAME IS NULL:04/11/05 11:50:48 ID:???
>136
先にBのマシンにデータベースを作る。
もちろんデータファイルの場所はC:\Databaseで。
そのあとインポート。

138 :初心者:04/11/05 12:25:22 ID:1ZTV7vdh
>137
ありがとうございます。
やってみます。


139 :NAME IS NULL:04/11/05 23:43:35 ID:HhlifwTI
教えてほしいのですが
MS-SQLで Limit/ffset に代わるSQL文はどのように書けばいいのでしょうか?
お願いします。

140 :NAME IS NULL:04/11/06 01:55:35 ID:???
>>139
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&c2coff=1&q=%22SQL+Server%22+%2BLimit%8B%E5%81@%2BOFFSET%8B%E5&lr=lang_ja

141 :NAME IS NULL:04/11/07 11:48:09 ID:aLjLwZ2g
VC++を使って、
SQLServer2000のDBインスタンスを作成するプログラムを作りたいのですが、
どの辺を参考にすればいいでしょうか。
いくつか方法があるのでしょうか?

インスタンスさえ作ってしまえば
ODBC作って経由で何でもできるかなーと思っていたのですが
いきなりつまずきました。

142 :NAME IS NULL:04/11/07 20:33:26 ID:???
>>141
インスタンス?インストーラでも作る気でつか。
それならそれでsetupsql.exeを-sで呼びゃいいけど。

多分データベースのことだろうから、それでいくと
SQL-DMO使うのが一番楽。感動するほど楽。
80\Tools\Binn\sqldmo.dllをimportして使うべし

データベース作成まわりはどいせSQLServer依存になるから
SQLDMO使うのをためらうこともないでしょ。


143 :141:04/11/07 23:18:15 ID:aLjLwZ2g
>>142
ありがとうございます。早速ぐぐってみます。
そのとおり、作りたいのはデータベースそのものです。


これでいけるかな・・
ttp://www.sqldev.net/download/sqldmo/80/vc/createdb.cpp.txt

144 :NAME IS NULL:04/11/08 15:59:11 ID:???
初歩的な質問ですみません。
既存プロシージャの修正業務を行っているんですが、そのprcが

(1) デカイTBL(20万行)から必要行を取り出して一時TBL(#TMPTBL)に挿入
(2) 一時TBLに対して色々複雑な処理をして出力TBLへ挿入
(3) 出力TBLを使って帳票出力

という流れで処理を行っているんですが、死ぬほど遅いんです。

で、質問なのですが、たとえ一時TBLと言えどきちんとIndexを作ってやらない
とjoinとか沢山行ったら目も当てられないと思うんですが、SQLSvrの一時TBLは
そういう意図で(上記のような流れの処理で)使うべきではない?

というか、皆さんどういう局面で一時TBLを使ってるんですか?一時TBLを使う
時はちゃんとIndexも指定するのが常識ですか?

#とはいえ、SELECT・・・INTO・・・で一時TBL作る際にはINDEXの作成はでき
#ないですよね?

145 :NAME IS NULL:04/11/08 18:52:56 ID:???
>>144
一時テーブルの使い方うんぬんはそれほど経験が無いので
何とも言えないけど、作業テーブル的な使い方で問題ないんじゃないでしょうか。
自分も大体同じような使い方をしています。
CREATE INDEXはストアドプロシージャー内で使えるので、
一時テーブル #TMPTBL 作成後
CREATE INDEX <index_name> ON #TMPTBL (column1, column2, .....)
でいいのでは?
(このINDEXはストアドプロシージャー終了後削除される)


146 :NAME IS NULL:04/11/08 19:03:05 ID:???
>>144
間違った使い方ではないと思う。

チューンアップをするなら、まずクエリアナライザでそのプロシージャの
実行計画を表示させてボトルネックがどこにあるのかを探すのが先決。

それで一時テーブルのテーブルスキャンが原因となればindexを作ればいい。

147 :NAME IS NULL:04/11/08 21:47:53 ID:???
帳票出力の事前処理で、わざわざストアドを使っているということは、カーソルから
1行づつフェッチして if文で分岐処理して… とかやってるんじゃないかな。
そういうストアド特有の処理を多用しているのであればインデックスを張ったところで
高速化は望めないよ。

148 :142:04/11/08 23:13:22 ID:???
>これでいけるかな・・
>ttp://www.sqldev.net/download/sqldmo/80/vc/createdb.cpp.txt
うぁ。なんでこんな長いコードになるんだ、と思ったら
importも自動生成スマートポインタもなにも使ってないのね。
古いVC6でもコンパイルできるように、とかかな。ありがた迷惑な。
そっちの話をしだすとスレ違いなのでそれはおいといて。

ま、これでいけますよ。

149 :NAME IS NULL:04/11/09 17:01:50 ID:QT8QbHq6
質問させてください。
win2000serverをwin2003serverにアップグレードでインストールしようとしたのですが、
SQL server2000がサポートされてないとメッセージが出ました。しらべると、SQL server 2000の
SP3にアップグレードすればよさそうだったのでやろうと試みたのですが、手順がよくわかりません。
サイトに行くとなんか、3種類のファイルをダウンロードさせられ、実行ファイルを展開したまではいいの
ですが、そっから先がよくわからないのです。 だれか優しく教えてください。

150 :NAME IS NULL:04/11/09 21:24:48 ID:???
>>149
http://support.microsoft.com/default.aspx?scid=kb;ja;819334

151 :NAME IS NULL:04/11/09 23:25:37 ID:???
ストアードプロシージャについての質問なんですが、
可変長の配列をプロシージャに引き渡す場合、
どういう方法を取るんでしょうか?

何をしたいかというとWhere条件のIN文に不特定の
数の文字列を入れたいんです。
Where num IN('one', 'two', 'three')
みたいな感じなんですが、これが0個の時もあれば
10個の時もある、みたいな形をとりたいんですが・・・

152 :NAME IS NULL:04/11/10 00:29:51 ID:???
100個でも1000個でもテーブルに入れてしまえ。

153 :NAME IS NULL:04/11/10 00:38:34 ID:???
>>152
それってカッコ悪くない?

154 :NAME IS NULL:04/11/10 09:11:01 ID:???
IN('one', 'two', 'three')を一つの文字列として送ってしまえ

155 :NAME IS NULL:04/11/10 22:19:50 ID:???
さらにかっこわるいな

そういうストアドを作るという設計自体を見直したら?

156 :NAME IS NULL:04/11/10 22:45:31 ID:???
キーになる値をストアドに渡せば済むようなテーブル設計にすべきだろうな。

157 :NAME IS NULL:04/11/11 10:23:14 ID:???
MSSQLServerって、鯖のプロセッサがマルチかセ^H^Hシングルかでプロシージャ(内の
SQL)の書き方を変えるっつーか意識しながら書くってのが常識ですか?

いや、シングルプロセッサなテスト鯖でカリカリにチューニングしたプロシージャを評価
鯖で動かしたら8つあるプロセッサのうち、1個しか働いてなかったんで。


「シングルプロセッサな鯖で本番運用してみたら話にならなかったので、Xeon 8way位の
eServerあたりを思い切って購入」みたいな時に困っちゃうと思うんですが・・・



158 :NAME IS NULL:04/11/11 11:47:42 ID:???
???

159 :NAME IS NULL:04/11/11 22:24:29 ID:???
>>157
どんなデータベースであろうと、聞いた事ないねえ。
それより物理ディスクやRAIDとかいう構成方法と、
データファイルやログファイルなんかの分割の組み合わせ的な
設計の方を考慮するべきだよ。

プロセッサを考えて処理方法を考えなければいけないのは、
スパコンのようなプロセッサ+ディスクのセットが複数で
構成されているばあいじゃないかな。
もちろん、データの分散も考慮してないと意味無いけど。


160 :NAME IS NULL:04/11/11 23:36:41 ID:???
>>157
BooksOnlineでキーワードに並列って入れてみ。
大したことは書かれてないけどな。

並列クエリになるかどうかとは別として
クエリの実行プランがどうしても思うようにならないときは
UPDATE STATISTICS と sp_recomplie をやってみるといいかも。

161 :NAME IS NULL:04/11/11 23:50:11 ID:???
いや多分、真にカリカリなプロシージャを目指すと、singleかmultiかを意識する必要がありそう>MSSQL

シングルプロセッサの場合、複雑な結合になるSQLよりは、あえてそれを分解して極々簡単なSQLを順次
直列に実行する方が早くなるケースがある。あるいは、まとめてselect/まとめてinsertな処理をあえ
てカーソルでクルクル回した方が速いとか。

でもそんなプロシージャだと、マルチプロセッサ環境でも全く並列クエリにならない罠。
ある程度joinやsubqueryが沢山有るような複雑なsqlほど、マルチな環境できちんと並列化される。


ていうか、以前「極力joinは使わない方針で」といわれてprcを書かされたことがある(゚д゚;
こういう方針で書くところは結構あるんじゃないかな?

162 :NAME IS NULL:04/11/12 00:02:50 ID:???
そ、それってある意味アホアホって認めてることになるんじゃあ

163 :NAME IS NULL:04/11/12 01:47:02 ID:???
カリカリチューンでオプティマイザの裁量余地をなくしてしまうと
ハードや負荷状況・統計情報が変わったときに追従できないと思う。

164 :NAME IS NULL:04/11/12 07:22:36 ID:???
               ,-――――――――‐-.
               /               |
              /               |
              /                 |
             l"          Microsoft l
            lー-―――――――‐--、/l
            | '''二二_ ,,_     ト、ミヾニ┤
         ヽ   |,,,,,,,,_  ,、-──-、 ヾ、ミ三ミi
      \    |  i`二ニ! `´二二,`'''  `!彡ヾ,i
       i   !  ゝ-- ノ  ‐─‐‐    レ⌒Y
       ゙!  '、  | ""/    ''''"   彡!)) /
       ヽ   ヽ, ! /         '´ レ'/
         \  | i└=         人/   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ,!  i ∠-,_       /| |  < 4CPUだ、きっちり回せ。
           ヽェニニメニニィ'     、,/ / |    \______________
              ヽ`   ,,、 ,、/  /  |_
               _\_,,,、-''´   /  ト, ヽ
             / ,r|::::''      /  ノノ \
            r┤ |;;;| ヾー   /  /    /\
           ノヘ|  ∨     ,r'_/__,,_   /イ´/`ヽ、
     ,,、-‐'''"~´-‐゙i,,ニ二!\  ,r''///-‐ヽ\/! / /  `゙''-`ヽ
 ,r‐''''"´‐''"´     ヾ彡|─\ /彳" /ミ/i !/ /
/〉           | ト、〃ヽ、 / /!  /ヽシ i | /
/            ヽ\ \i// /ヾ /  i| | !
               \〃\/ヾ/  i
                \/\/


165 :NAME IS NULL:04/11/12 13:44:16 ID:???
>163
だから本番運用後やハード買い替え後に追加対応で苦労するわけですヨ。
まあ、マッチポンプという気も(ry

166 :NAME IS NULL:04/11/12 19:41:37 ID:???
4way以上の構成使うシステムって、ふつーマルチユーザーシステムだろ。
ひとつのクエリを複数 CPU で効率良く駆動するようにしなくても、
4つ以上のクエリが同時実行されれば CPU は十分に有効活用されるんだから
クエリ単体は、単一 CPU 向けにチューニングしといてもいんじゃね?

167 :名無しさん:04/11/12 21:01:09 ID:???
>166
それを言うならむしろ逆じゃないか?

マルチで最大のパフォーマンスを発揮するように書いておいて、実
際にパラレルでクエリを実行時するかしないかはその時のメモリな
んかの状況次第でMSSQLが最適な方法を選択。

多分これがスマートだと思うが。

168 :NAME IS NULL:04/11/12 22:20:58 ID:???
>>167
そんなにMSSQLタソは頭がイクない!
でも次の娘なら・・・?!

169 :NAME IS NULL:04/11/13 02:08:12 ID:/IwXI261
>>157-168
SQLServerはマルチコアでのライセンス価格をシングルコアと同じにするらしいから、
あと少しすればそんな悩みは無用になる。
使い切れないトランジスタをひたすらコアの増加に向けてくるから、
これからムーアの法則以上の速度でサーバの能力があがる。

オラやDB2はマルチコアはライセンス料×コア数だから使う必要なし。


170 :NAME IS NULL:04/11/13 05:00:46 ID:???
>オラやDB2はマルチコアはライセンス料×コア数だから使う必要なし。
あれ、まだ態度を表明していなかったのでは?
いずれにせよMSに追従すると思うけど

つーか、論点が違うんですけど旦那>>169

171 :170:04/11/13 08:02:18 ID:???
>>170
論点ずらしてすみません。
ただオラとDB2は現状すでにライセンス料×コア数ですよ。
単純に追従するかは疑問ですよね。
ただこの話題に触れている人って少ないですよね。
導入コストに直撃するはずだけど。

オラは、RACでのスケールアウトをPRしまくっているけど、
スケールアウトでサーバコストを下げても、オラのライセンス料が
高すぎるから意味ないし。
マルチコアはスケールアップで、RACでの性能向上の意味を
薄れさせかねない。

172 :NAME IS NULL:04/11/13 08:10:15 ID:???
マルチコアってDBの性能を素直に上げてくれるのかなあ・・・
マルチCPUならスループットに影響出るだろうけど、マルチコアってちょっと怪しい

173 :170:04/11/13 08:34:54 ID:???
メモリ帯域がネックになるけど、そこはインテルなどのメーカーも
承知済みで対策を考えている。
マルチCPUと比べると、
・キャッシュが半分(デメリット)
・データの同期のコストが低い。(メリット)
・Opteronのようなメモリバス内蔵だと、全体としてのメモリ帯域が
半分(XEONでは関係なし)(デメリット)
・シングルコアに比べてクロックが低い可能性がある。(デメリット)
・バス競合をうまく抑えられる可能性がある。(メリット)

まあ一長一短だが、肝心な事はCPU業界全体がこちらに向かっている事と、
うまく使えば2WAY以上は、急上昇するサーバのコストを抑えられる事。

http://pc.watch.impress.co.jp/docs/2004/1112/kaigai133.htm


174 :NAME IS NULL:04/11/13 18:56:46 ID:???
>・Opteronのようなメモリバス内蔵だと、全体としてのメモリ帯域が
>半分(XEONでは関係なし)(デメリット)

これってXEONならメモリコントローラをコア数分つけられるってこと??

175 :170:04/11/13 21:48:40 ID:???
>>174
説明足らなくて済みません。
まず質問の答えはNO。

XEONは、
(1WAY)
CPU−チップセット−メモリ
(2WAY)
CPU−チップセット−メモリ
CPU−|
Opteronは、
(1WAY)
CPU−メモリ
(2WAY)
CPU−メモリ
 |
CPU−メモリ

XEONはメモリコントローラを内蔵していないで、チップセット経由で
メモリアクセスだから、2WAYだとメモリ帯域がCPUあたり半分になる。
しかも2CPUだとFSB(CPU-チップセット間)のスピードも1CPUほど出せない。
でもOpteronはCPU毎にメモリコントローラが内臓されているから、
2WAYならシステム全体としてのメモリ帯域は2倍になる。
だからOpteronの方が、2WAYでの性能の伸びが大きい。

176 :NAME IS NULL:04/11/14 12:18:31 ID:4TxXXTd4
わけあってストアードプロシージャが
使えないんだけど、アドホッククエリの中に
トランザクションや変数や分岐とかの
普通はストアードで書きそうな記述をしたいんだけど、
これって問題とかあるのかね?

177 :NAME IS NULL:04/11/15 18:52:15 ID:???
sp_executesql で実行した結果を変数に取得する事は可能でしょうか。

set @sql = N'Select count (*) Table_' + convert(nvarchar(16),@TableCode) + ' where id=1 ;'
EXECTE sp_executesql @sql

上記の、count(*) の結果を変数に取得したいです。
同一内容のテーブル名が業務毎に複数有るので、テーブル名の切り替えの為に
sp_executesql を使っています。



178 :NAME IS NULL:04/11/16 02:13:34 ID:???
>>177
ストアドかfunctionを使う

179 :177:04/11/16 09:07:39 ID:???
a,ストアド2つ構成にすれば良かったのか。

ありがとうです。

180 :NAME IS NULL:04/11/25 09:43:27 ID:???
Pentium III x 2 , Windows2k Server(sp2) の構成で SQL Server 2k std. を使ってるんだけど
CPU負荷がそれぞれ 50% しかいかない。
100% フルに使わせるにはどうしたらいいの?


181 :NAME IS NULL:04/11/25 09:58:23 ID:???
もっと負荷かけりゃいいんじゃねーNO?

182 :NAME IS NULL:04/11/25 19:08:41 ID:???
しょうもない話ですみませんが、みなさんは tinyint, smallint, int
など、使いわけていらっしゃいますか?

今は 0 , 1 の値しかとらない事が明確な場合でも、smallint で定義しています。
こういった場合 bit もしくは tinyint を使うべきでしょうか?

smallint で定義しているのは、フラグ関係のフィールドは一貫して smallint
で定義させている、という手抜きをしているだけの理由です。

アドバイスください。

183 :NAME IS NULL:04/11/25 22:40:29 ID:???
私は ナントカint系 は int しか使わないです。

0,1の場合はbitを使いますが、
フラグだったものが将来コードになりそうな場合int使っちゃいます。
(1:on/0:off の場合 bit →→→ 将来 1:on 0:off 2:ready になりそうならint、
説明のフィールドにコメントを残しておく。)

自分はデータベース専門じゃ無いのと、設計書等を十分に残せないまま
次々開発せざるを得ない職場なので、他の人が読んだときに
わかりやすい事を一番に心がけてます。

私の勝手な思いこみかもしれないけど、bool型みたいなのはbitで定義した方が
他の人が見たときにわかりやすいんじゃないかな?

184 :NAME IS NULL:04/11/26 02:56:33 ID:???
>>180
スピンループするストアドを2個走らせれば100%まで行くだろ

マジレスすると、メモリかディスクがボトルネックになってる可能性がある。
Standard editionだとメモリは2GBまでしか使えない。

案外Win2KSP4にしたらあっさり100%まで使われたりしてな(根拠無)

185 :NAME IS NULL:04/11/27 18:41:45 ID:???
>>184
たしかにディスクがボトルネックかもしれん。
調査してみる ノシ
クローズド環境だし、いまさらspクラスのパッチは怖くて無理('_`)

186 :NAME IS NULL:04/11/29 19:57:35 ID:ivioTFDb
VB6でプログラム組んでますが
SQLServerとの接続について次の2つの方法のどちらが主流なのでしょうか?

(1)プログラム起動時に接続、プログラム終了時に切断
(2)イベント(等)発生時に接続、処理終了後に切断。 待ち状態時は常に切断状態。

あとそれぞれのメリット、デメリット等あるでしょうか?

187 :NAME IS NULL:04/11/29 20:07:36 ID:???
クライアント数少ないなら(1)多いなら(2)とかかな。
Connectionは重い処理なんで、繋ぎっぱなしに越した事はないかと。

188 :NAME IS NULL:04/11/29 21:17:38 ID:???
場合によるなぁ。昔コネクションプールしまくりのPG作ったけど、
ユーザさんが途中の画面で放置するので処理毎に切断するようにした。

主流とか無いんじゃない?好みと要件次第の様な気がする。

189 :186:04/11/29 21:49:00 ID:ivioTFDb
>>187 >>188 ありがとです

ケースバイケースって事みたいですね。
どの場合にどちらを使うかという判断規準をもうすこし聞いてみたいですね


190 :NAME IS NULL:04/11/30 14:07:53 ID:???
クエリアナライザの起動時にどのデータベースをしようするか設定
できないですか?

use db_nameみたいに

191 :NAME IS NULL:04/11/30 17:52:41 ID:???
>>190
sp_defaultdbでログインの既定データベースを変更するとよろし

192 :191:04/11/30 18:08:10 ID:???
>>190
またはコマンドラインからisqlw <option......>でクエリアナライザを起動するかだね


193 :NAME IS NULL:04/11/30 20:00:09 ID:WlF48P8n
ODBC接続すると、何秒位かかりますか?

やっぱ、基本はConnection Poolingでしょうか?

194 :NAME IS NULL:04/11/30 21:00:23 ID:???
>>193
>ODBC接続すると、何秒位かかりますか?

自分のパソコンのCPUとネットワーク回線速度とトラフィックとDBサーバのスペックと負荷状態による。


>やっぱ、基本はConnection Poolingでしょうか?

何の基本か分からないけど、自分のパソコンにMSSQLをインストールして自分一人だけで使うってのならプーリングするだけ無駄。

195 :NAME IS NULL:04/11/30 21:56:04 ID:4Do0EdsB
てゆーか、SQL鯖の再接続が、一般的というか、他DBに比べて速いか遅いか位教えてYO!

196 :190:04/12/01 10:17:00 ID:???
>191-192
ありがとうございます!

197 :NAME IS NULL:04/12/01 12:14:08 ID:???
DBASE IVより早かったよ

198 :NAME IS NULL:04/12/01 20:40:23 ID:???
>183
bitだと同一テーブルに8列までは1バイトの記憶域にまとめて格納できるらしい。
9列になると2バイトとると。

そんな自分は16bitで足りなさそうなとこは32bit割り当ててみたりと適当です。
#intって16bit?

199 :NAME IS NULL:04/12/01 20:50:39 ID:???
日付がvarchar型で '2004/12/01' みたいにはいってて、これをある期間で抽出したいとき、
明示的に datetime に CONVERT しないで SQL Server に暗黙の型変換させたほうが早いのね。

今まで 600MB 約 1MレコードのテーブルにADPのサーバフィルタで
convert(datetime, 日付) between convert(datetime, '2004/11/01') and convert(datetime, '2004/11/30')
とかやっててタイムアウトが多かったから(ローカルのMSDEで実行したら4時間くらい
ディスクフル回転で100GBくらい読んでた)、おかしいとは思っていたが…。今は
日付 between '2004/11/01' and '2004/11/30'
にしている。

しかしなんで高々600MBのテーブルを100GB近くも読みに逝ってたんだろう?

200 :NAME IS NULL:04/12/01 21:19:02 ID:???
それ、日付じゃなくて文字列の比較じゃない?
いや、結果が一緒だったらいいんだけど。

201 :199:04/12/01 22:01:52 ID:???
>200
Σ(゚Д゚|||え、そういわれてみればそうか…。まあ確かに年月日で並んでれば結果は同じだからいいか。

202 :NAME IS NULL:04/12/01 23:08:26 ID:SwPYFPER
>>195
SQL鯖のODBC接続は凄く早いが。秒なんて掛かからね。

203 :NAME IS NULL:04/12/01 23:10:38 ID:???
>>195
てゆーか、お前一人だけしか使わないのなら一般的じゃないっていってるだろというか、他DBに比べて速いか遅いかって何と比べてんだ位教えてYO!

204 :NAME IS NULL:04/12/02 02:33:58 ID:???
>>199
betweenとか大小比較の時に変数や関数を指定すると
indexを使わないでテーブルスキャンしたり
無駄にループする実行プランになることがある

205 :195:04/12/02 09:05:14 ID:RE9blmZt
>>202
体験版でテストしたけど、隣に置いたPCに瞬時に接続するね。
別の建物というか距離のあるイーサネットのDBに接続すると10秒近くかかるけど、
RDBなんだからしょうがないね。

>>203
Sybase、ポスグレ、MySQL、Firebird、Ora、なんかと。

206 :NAME IS NULL:04/12/02 18:26:38 ID:???
>>205
ISDNルータを挟んだ別セグメントのSQL Server相手でもそんなには遅くないけど。

207 :NAME IS NULL:04/12/02 18:48:58 ID:???
>205
物理的な距離とネットワーク的な距離は別問題だろ・・・

208 :NAME IS NULL:04/12/02 21:48:22 ID:???
えーっと、まじめに答える。

>ODBC接続すると、何秒位かかりますか?
>やっぱ、基本はConnection Poolingでしょうか?

ODBC接続とコネクションプーリングは比較するようなものじゃない。
ODBCはあくまで規格だから、ODBC接続でコネクションプーリングするってできるし。

あとコネクションプーリングを採用する際のメリットはコネクションの確立と解放の時間が無くなることであり、
デメリットとしてはコネクションつなぎっぱなしになることと、順番待ちが発生すること。
逆にDBサーバ側から見れば固定数しか来ないっていうメリットにもなる。
ここいらへんはトレードオフだな。

>他DBに比べて速いか遅いか

ODBC接続でMSSQLに接続するのと、ODBC接続でオラクルに接続するのと、ODBC接続でポストグレスに接続するのと、
比べる意味あるのか?

あとアドバイス。
単語だけじゃなくて、ちゃんと意味を理解しろ。理解できるだけの基礎知識をつけろ。
あきらかに知識がなさ過ぎてただのバカな質問に見える。
キャベツと千切り、どっちがうまいですか?と聞かれてどうやって答える?

209 :NAME IS NULL:04/12/02 21:51:34 ID:???
俺なら
ギャベツのせんずり
って答える。

210 :NAME IS NULL:04/12/03 09:26:44 ID:???
>>210
ぬるぽ

211 :NAME IS NULL:04/12/03 11:40:56 ID:???
久々にガッ

212 :NAME IS NULL:04/12/04 13:14:02 ID:AIpsSRcu
>>208
>ODBC接続でMSSQLに接続するのと、ODBC接続でオラクルに接続するのと、ODBC接続でポストグレスに接続するのと、
>比べる意味あるのか?

あるだろ?
ODBC接続でオラクルは問題ありだろ? とくにM$のは。


213 :NAME IS NULL:04/12/04 13:28:39 ID:???
>>208
SQL鯖へのODBC接続時間とかConnection Poolingとか言ってるのでWEBアプリの話だと思われ。

Connection Pooling無しで毎回SQL鯖にODBCで再接続した場合に
実用的な速度で再接続出来るのかと聞いてるのだと思う。

こんな質問をするヤツに任せるとトンデモなWEBアプリが出来上がる悪寒。

214 :NAME IS NULL:04/12/04 20:32:01 ID:???
>>212
A社製のODBCドライバでオラクルつなぐのと、B社製のODBCドライバでオラクルつなぐのと比べるなら分かる。
もしくはオラクルつなぐのにODBC使うのとJDBC使うのとSOAP使うのとで比べるなら分かる。
他DBに比べて速いか遅いか位教えてYO!とか言われてもなあ


215 :NAME IS NULL:04/12/04 20:33:22 ID:???
>>213
それでConnection PoolingとODBCはどっちが一般的なんだ?

216 :NAME IS NULL:04/12/04 22:23:44 ID:???
>>215
ADO.Netが一般的。

217 :NAME IS NULL:04/12/04 23:23:57 ID:???
ADO.Net わかりにくーい(; x ;)

慣れればアレなんだろうけど・・・

218 :NAME IS NULL:04/12/04 23:38:07 ID:???
×慣れればアレ
○慣れる頃にはアレ

219 :NAME IS NULL:04/12/05 11:09:48 ID:???
>>217
歌を歌いながらガラスに絵を書く人。


220 :NAME IS NULL:04/12/08 00:39:17 ID:???
>>219
水森亜土かよっ

221 :NAME IS NULL:04/12/08 14:20:48 ID:???
一台のPCをサーバーに見立てて、それにMSDEをインスコして、
そのデータベースを他のPCからADO.NETで利用する場合、
クライアント側のPCにMSDEのクライアント版みたいなのが必要になったりするんでしょうか?


222 :NAME IS NULL:04/12/08 14:28:45 ID:???
いらない。

223 :NAME IS NULL:04/12/08 14:54:48 ID:???
>>221
そのサーバーに見立てたPCにはサーバー版OSが必要らしい。
ソースは↓
ttp://www.horikawa.ne.jp/cgi-bin/showlog.cgi?kd=1&no=1196

んなこたぁ知ってるYO!だったらスルーしてください。

224 :NAME IS NULL:04/12/09 00:42:37 ID:???
>>223
それはマイクロソフト日本法人が非公式に日本apacheユーザグループに出した回答を元にしていると思われ。
正しくない部分が多々あるDQNな文章で信憑性はゼロ!


225 :NAME IS NULL:04/12/09 21:21:33 ID:???
俺が適当にどっかのネット上にジョークを書いたら、ソースはこれだYO!とか言われるんだろうか

226 :NAME IS NULL:04/12/12 17:19:11 ID:???
SQL Server 2000 の管理面、ストアドプロシジャーでの開発など含めて
勉強できる書籍でおすすめのがあれば教えていただけないでしょうか?

227 :NAME IS NULL:04/12/12 18:10:36 ID:???
>>226
マイクロソフトの本。
管理面で上下巻、tansact-sql(ストアドプロシジャー)でで上下巻の計4冊。

金あるならセミナー行け。その方が時間的にお得。

228 :NAME IS NULL:04/12/14 21:25:01 ID:lFJ3oA33
EnterPriseManager からインスタンスの追加はできるのでしょうか?


229 :NAME IS NULL:04/12/15 12:11:20 ID:???
インスタンス追加はインストールしなきゃならんのでCDからインストーラ起動で。
SQL鯖は1インスタンスに複数のデータベースを持てるからそっちを検討してみてぁ?

230 :228:04/12/15 21:07:02 ID:i0yZMr72
>>229
ありがとうです。

一つ疑問があるのですが
SQLServer2000はSP3にしてあるのですが
CD(SQLServer2000)からのインストールでインスタンスを追加すると
それは自動的にSP3になるのでしょうか?

231 :NAME IS NULL:04/12/15 22:41:57 ID:???
>>230
なりません。
名前付きインスタンスには別途サービスパックを適用する
必要があります。

232 :NAME IS NULL:04/12/20 19:20:47 ID:???
MSDEとAccessでCSシステムを作成する場合、一般的に
ストアドプロシージャでBeginTrans、CommitTransを記述するようにするもの
なのでしょうか?
Accessチックにクエリビルダで線をピッピと引っ張って作ってましたが
実はありえない事をやっているのかと不安になってきました。

233 :NAME IS NULL:04/12/21 07:57:35 ID:???
AccessプロジェクトならほとんどのオブジェクトはMSDE側に作られるから
問題ないと思います。Accessからできることだけで操作したほうが見通しが
良いですし。トランザクションはネストできますからストアド内で使うか
どうかは状況しだいですが、普通はAccess側から操作すれば十分です。
JET(mdb)のリンクテーブルって話ならまた違いますけどね。

234 :NAME IS NULL:04/12/21 20:37:58 ID:???
ありがとうございます。このまま進めますです。

235 :NAME IS NULL:04/12/24 18:21:41 ID:bNmDGfoN
SQL Serverは初心者なのですが教えて頂けないでしょうか?
OracleでいうDMPはSQL Serverではどれにあたるのでしょうか?
DTSを使用するとは思うのですが・・・。

236 :NAME IS NULL:04/12/25 13:52:59 ID:???
困った・・・

鯖側DBは
Chinese_Taiwan_Stroke_CI_AS
で、DB・テーブルを作り

クライアント側(日本語Win2000)で接続して
BIG5のテキストデータをperl+DBIで書き込んだのだが

見事に文字化けしてしまう


クライアント側を台湾版のOS(or 日本語版の地域設定で台湾)にしないとダメなのか?

>>235
DB間のコピーならDTSだよ

237 :236:04/12/25 14:43:33 ID:???
自己解決(?)したくないが



ttp://www.microsoft.com/japan/Office/2000/techinfo/Limitation/Access2000.asp
>■多言語について
>クライアント コンピュータのコード ページは、サーバーのコード ページと一致していなければならない

office2000(access2000)以外にも当てはまるのか?

238 :NAME IS NULL:04/12/25 15:59:44 ID:???
>>236
クライアント側はUnicodeにすればサーバ側で変換してくれるんじゃないの?

239 :236:04/12/25 17:39:33 ID:???
SQLクライアント設定ユーティリティのDB-Libraryオプションタグで
ANSIからOEMへの自動変換

インターナショナル設定
のチェック(両方)を外したら解決した・・・

たぶん片方だけで済むはず

>>238
perlなんで
(各コードページの定義ファイルが必要だし・・・)

240 :NAME IS NULL:04/12/25 22:17:48 ID:???
>>239
すまん。前にperlでもUnicodeが使えるって聞きかじってたもんで適当に答えてしまった。
でもDB-Libraryが使われてるのならUnicodeはアウトかも

・任意のバージョンの DB-Library または Embedded-SQL for C を使用するアプリケーションは、TDS 4.2 を使用して通信します。
・TDS 4.2 は Unicode をサポートしません。nchar 型と nvarchar 型の値は、サーバーの Unicode 以外の Windows® コード ページを使用して char 型と varchar 型に変換されます。これにより、拡張文字が失われる可能性があります。ntext 型の値は取得できません。

241 :NAME IS NULL:04/12/25 22:54:33 ID:???
DTSのどの設定にすればいいのでしょうか?

@SQLServerの入っているPC
    ↓
ASQLServerの入っていないPC
    ↓
BSQLServerの入っているPC

というふうにテーブルを移動させたいのですが@からAに移すときに
どの形にして入れればAからBに移したとにBと@と全く同じ状態で
復元できるのでしょうか?

242 :NAME IS NULL:04/12/26 11:07:24 ID:???
>>241
DTSは鯖間のコピーだった気がする

テーブル(デザイン)だけなら
(1)内のダミーにDTSを使用してコピー
この時
C:\Program Files\Microsoft SQL Server\80\Tools
フォルダ内に〜.TAB, 〜.PRC, 〜DR1, 〜.DR2のファイルが出来るから
これを(3)の鯖に対して"クエリ アナライザ"を使用してテーブル等を作る(この時に〜.TAB等を使う)

データはアクセスファイルにでもすればいい (レコードが多いと無理っぽ)

243 :NAME IS NULL:04/12/27 00:17:15 ID:???
くそう
今の設定はChinese_Taiwan_Stroke_CI_ASなんだけど


大文字小文字は区別しない
半角と全角は区別するってどうやるんだ?

あとbig5の記号で
\xA2\x7E と \xF9\xFA も区別するようにしたい
*unicodeでは後者が前者に変換されてる by EmEditor





この辺unicodeは糞だな・・・

244 :NAME IS NULL:04/12/27 03:02:57 ID:???
>>243
select * from ::fn_helpcollations()
where name like 'Chinese_Taiwan_Stroke%WS%'


245 :NAME IS NULL:04/12/27 08:51:53 ID:???
>>244
ttp://www.microsoft.com/japan/msdn/library/ja/jpdnsql2k/htm/IntlFeaturesInSQLServer2000.asp

へんな書き方すんな

246 :NAME IS NULL:04/12/27 15:29:23 ID:x6k6atOm
今ウィンドウズ環境でMYSQLを使っていますが、何か簡単なバックアップの
方法はないでしょうか?

247 :NAME IS NULL:04/12/27 16:14:15 ID:???
スレタイをよく読め。

248 :NAME IS NULL:04/12/27 21:03:51 ID:???
漏れもMySQLスレかと思った

249 :NAME IS NULL:04/12/28 00:02:40 ID:???
>>245
隠し関数を使ったわけでもないのに変って言われてもなぁ..
まあ、普通は使わない関数なのは確かだけど。

250 :NAME IS NULL:04/12/30 00:55:55 ID:???
不要になったユーザー定義データ型を削除しようとしているのですが、
データ型は使用されています、とメッセージが出て削除できません。
依存関係では何も表示されませんし、スクリプトで全オブジェクトを出力して
作成された sql ファイルを見てもそのユーザー定義データ型を使用している
ところはありませんでした。

ユーザー定義型を削除するにはどうしたらよいのでしょうか?

251 :NAME IS NULL:04/12/30 23:53:11 ID:???
ストアドプロシジャーに関して質問です。

ストアドプロシジャーにするメリットとしては、処理効率?があげられると
思うのですが、3、4個のテーブルを JOIN して、5、6個程度の WHERE 句
が存在する程度の抽出 SQL でも、ビューで作成して利用するより、
同じ内容で、ストアドプロシジャーにするほうがレスポンスは向上する
ものなのでしょうか?

SELECT を行なう SQL で、ビューを利用するメリットと、ストアドプロシジャー
にするメリットがいまいちつかみきれていません。

基本的に SELECT を行なう SQL であれば、どちらを選択すべきなのでしょう
か?更新処理などがなくてもやはり、ストアドプロシジャーにしたほうが
効率はあがるものなのでしょうか?

アドバイスのほど、よろしくお願いします。

252 :NAME IS NULL:04/12/31 00:48:32 ID:???
結合や抽出の条件が単純なSQLで住むならビューでいい。
迷ったら、楽でシンプルであとから手を入れやすい方を選べば間違いない。

253 :NAME IS NULL:04/12/31 22:30:14 ID:???
MSDEをインストールする時に指定したDisableNetworkProtocolsオプションって、
後から変更することは可能ですか?

それとも、再インストールするしかないのかな・・・。


254 :NAME IS NULL:05/01/01 01:21:32 ID:???
>>253
<インストールパス>\Microsoft SQL Server\80\Tools\Binn\svrnetcn.exeで変更できる

255 :NAME IS NULL:05/01/01 09:37:38 ID:???
2000 DevEditionですが、WinXP-Pro-SP2にインストールすると、
「サーバーを起動し、指定した設定を適用しています...」のまま先に進まなくなります。
インストールタスクの強制終了もできず、Winも終了できず電源OFFするしかなくなるんです。

Windowsファイアウォールも無効にしてますし、ウィルスバスターも終了してます。

こんな現象起きている人いますか?

256 :255:05/01/01 09:48:09 ID:???
よく見たら「サーバーを起動し、選択した設定をインストールしています...」でした。

257 :253:05/01/01 20:40:08 ID:???
>>254
サンクス。
やってみます。

258 :NAME IS NULL:05/01/05 17:19:54 ID:/Mdw8tqj
SQLSERVER2Kをインストールし、SP3aのパッチを当てようとしていますが、
セットアップ初期化エラー
アクセスが拒否されました
と表示され、パッチが当てられません。
なにが原因なのでしょうか?

259 :NAME IS NULL:05/01/05 18:15:49 ID:???
[OSのVER]:Windows2003
[SQLServerのVER]:2000

WindowsXPのクライアントからSQLServerへODBC経由で接続し、データを取得しようと
すると以下のエラーが表示されてしまいます。

[Microsoft][ODBC SQL Server Driver][SQL Server]
OLE DB プロバイダ 'MSDAORA'は分散トランザクションを開始できなかったので、
要求した操作は実行されませんでした。

どのようにしたら解決できますでしょうか?
どなたかご教示の程宜しくお願い致します。

260 :NAME IS NULL:05/01/05 19:45:35 ID:???
>259
「Distributed Transaction Coordinator」サービスを止めていないか?

261 :259:05/01/05 19:51:26 ID:???
DTCは起動しているんです..

262 :NAME IS NULL:05/01/05 20:24:02 ID:iUXMKCt8
SQLServer はOracleで言う統計情報なるものが存在しますか?

と言うのは、SQLServerにインデックスを張ったのですが、
その後インデックスを有効にする処理が必要なのかなと思ったわけです。
Oracleだとコストベースオプティマイザであれば、インデックスを張った後に統計情報を取得しないと意味ないですよね。
SQLServerにも統計情報なる考え方があるのかどうか教えて下さい。

BooksOnlineではそれらしき項目が無いので、統計情報なるものは存在せず
インデックスを張れば即時に効果が出るかと予想してます。


263 :NAME IS NULL:05/01/05 23:43:58 ID:???
>262
あるし、BOLにも乗ってるはず。
_Wとかtとかではじまってるやつだ。sysindexesみてみよ。
ただ、oracleやdb2と違うのは自動でできること。(db2も設定すればできるけどね)
全体の数割が変更されるごとに勝手に更新されるので
自分では何もしなくて良い。結果的に
>インデックスを張れば即時に効果が出る
だね。

強制的に手動更新する場合は UPDATE STATISTICS

264 :NAME IS NULL:05/01/06 11:49:54 ID:???
>>259
クライアント側のアプリってCOM+配下のコンポーネントってことはないですか?
COM+とSQLServerが別のサーバーの場合は特別な設定が必要になります。

265 :259:05/01/06 17:51:58 ID:???
クライアント側のアプリは市販パッケージソフトのため、仕様がわからないのです。
もし、おっしゃられている場合、どのような設定を行えばよいのでしょうか?

266 :NAME IS NULL:05/01/06 20:25:56 ID:???
>>265
分散トランザクションつまり複数のDBサーバーにまたがるトランザクションを使用する場合、
トランザクションコーディネータ(MSDTC)配下のCOM+コンポーネントを作成する必要があります。
DBもCOM+コンポーネントも同じコンピュータにある場合は何の問題もなく稼動しますが、
別のコンピューターにある場合は通常のDBへの接続のほかにDBサーバーのMSDTCとCOM+コンポー
ネントのあるサーバーのMSDTCの間でトランザクションを制御するための通信が発生します。
その通信は標準では有効になっていません。
まず、Win2003ではネットワークDTCアクセスが標準では有効になっていないため追加でインストール
する必要があります。XPでは標準でネットワークDTCアクセスがインストールされています。
ttp://support.microsoft.com/default.aspx?scid=kb;ja;817064
次はXP同士のケースで検証したものなので2003だと異なる箇所もあるかもしれませんが、
双方で「管理ツール」「コンポーネントサービス」「MSTDC」「セキュリティの構成」
「トランザクションマネージャ通信」で送受信とも許可にします。
「COMセキュリティ」「アクセス許可」「制限の編集」でANONYMOUS LOGON,Everyone双方に
リモートアクセス許可を与えます。(ここはもう少しよい方法があると思いますが全開にしています)
あと、WindowsXP SP2の場合は\windows\sysetm32\msdtc.exeをファイヤーウォールの例外に登録する
必要があります。
余談ですがDTC間の通信はwindows2000とXP/2003の間でセキュリティに関するモデルが異なっている
ようで、2000サーバーとXPクライアントの場合の設定は難易度高です。特にDBサーバーが2000で
ドメインサーバーを兼ねてる場合の設定はほとんど不可能と思ったほうがよいと思います。

267 :NAME IS NULL:05/01/06 22:47:21 ID:???
ファイアーウォールの例外以外は特にいじってないんだけど
うちのWin2000(PDCとDBサーバ兼用)
にXPSP2クライアントと2003クライアントから
DTC通信で分散トランザクションができてしまいます・・・


268 :NAME IS NULL:05/01/07 00:53:31 ID:???
>>267
トランザクションが動いてないってことはないですか?
コンポーネントのトランザクションの設定が全部「サポート」以下の場合
明示的にトランザクションを開始してない場合はトランザクションは使われてません。
自動トランザクションで開始するなら「必要」または「新しく必要」のコンポーネント
がどこかに必要になります。

269 :262:05/01/07 21:00:09 ID:???
>>263
ありがとうございました!!!


270 :NAME IS NULL:05/01/11 22:32:40 ID:???
ここで聞くか、それともVS.NET関連のスレで聞くか迷ったのですが、
ここで質問させてください。

SQL Server 2000 Reporting Servicesを使用して、PDFのレポートを
表示するWebアプリケーションを作成しようと思っています。
開発はVS .NET 2003 で行っていて、ソリューションエクスプローラーの
参照設定から、Web参照の追加で、ReportingServiceへの参照設定を
しようとしたのですが

'http://localhost/ReportServer/ReportService.asmx' をダウンロード中にエラーが発生しました。
HTTP ステータス 400: Bad Request で要求が失敗しました。

というエラーが発生してしまい、Web参照設定ができません。
ReportingServiceをWebサービスとして利用するにあたって、なにか
設定等必要になるのでしょうか?

271 :NAME IS NULL:05/01/12 00:09:24 ID:???
>>270
Reporting Servicesというのははじめて知ったけど
.NETのWEBサービスなら ?wsdl とか付けるんじゃなかったけ
ttp://localhost/ReportServer/ReportService.asmx?wsdl


272 :NAME IS NULL:05/01/12 21:15:12 ID:w3W1K1pO
SQLServer2000ってクラスタ構成にできないの?
DB2で言う分散パーティションニング・フィーチャー(DPF)みたいな機能で
1つのDBを複数の筐体に拡張することはできるのかしら?

SQLServer2000でも、2005でもパソコンでしか動作しないから
スケーラビリティの問題をどう解決するのかな?

それともOracleに載せ替えるのかな?

273 :NAME IS NULL:05/01/12 21:39:58 ID:???
>>272
製品情報くらい自分で調べろ。

274 :NAME IS NULL:05/01/12 22:54:52 ID:???
>272
かなりの馬鹿みたいね、こいつ
何億もするWindowsサーバ機を組んでる大企業なんてごろごろいるよ。
それもパソコンですか?

275 :NAME IS NULL:05/01/12 23:09:15 ID:???
>>274
AIXやOS/390とかの世界の人なんだろう。きっと。

276 :NAME IS NULL:05/01/12 23:24:11 ID:ujs9GoAF
今ODBC使ってるCのコード見てるんだけど、
全てのDBアクセスで、毎回select count(*)でデータ件数取ってきてから、from以下同文の本SQL発行してる
出力データ格納するのに必要な領域サイズ知るためみたいだけど…
これって普通のやり方なの?できれば一回で済ませるようにしたいんですが

277 :NAME IS NULL:05/01/12 23:50:28 ID:???
>>276
count(*)から次に読み込むまでの間にデータが増減しない保障はない。
月に1回くらい不思議なエラーが出るかも。でもCで配列を動的に増や
すのって面倒そう。c++ならstlの出番か。MFCのCxxArrayでもいいけど。

278 :NAME IS NULL:05/01/13 00:00:01 ID:???
forward onlyでなければ最後まで読み飛ばせば全体の件数がわかるんだっけ。
それからポインタを先頭に戻して読み直せばいい。
ただし効率考えたらforward onlyで読みたいね。

279 :NAME IS NULL:05/01/13 16:57:52 ID:???
VIEWに関する質問

SELECT
*
FROM
HOGE

を返すVIEWがあるんだけど
HOGEテーブルの列を追加して
sp_recompileをかけても
変更がVIEWの結果に反映されません

原因と解決策があれば教えてくださいマシ
今は影響する全部のVIEWに対してALTER VIEWをかけてます( Д)

280 :NAME IS NULL:05/01/13 18:18:10 ID:???
sp_refreshviewっつーのは違うんかな?

281 :NAME IS NULL:05/01/13 18:31:51 ID:???
>>280
おぉ!!!
こういうのがあったとは
ありがとうございます<m(__)m>

282 :276:05/01/13 21:10:00 ID:???
>>277,278
サンクス
ある程度しょーがないのか…orz

283 :NAME IS NULL:05/01/13 22:38:21 ID:???
>>282
なんでもかんでもってのは変だと思う。
すべてメモリに取り込まなくても処理できるのであれば無駄だし。


284 :NAME IS NULL:05/01/13 23:23:38 ID:???
最初に全部メモリを確保するんじゃなくて
10件毎とか100件毎にメモリを確保しながら
少しずつ読んで行くことはできないの?

285 :NAME IS NULL:05/01/14 00:35:35 ID:???
ヽ(`Д´)ノウワァァン!!MSDE に作ったDBが2GBに達したから行の一部を別のDBにINSERTして
移した行をDELETEしたら、トランザクションログが無茶苦茶増えてディスクフルになって
元のDBがぶっ壊れた!!
 まあ完全/差分バックアップから復元できるわと思ったら、差分をリストアしたあとで
ナズェ「容量が大きすぎて復元できんわ」という旨のログがでるのディスカーーーー!!
SQL Server買えってこと、なのか?

286 :NAME IS NULL:05/01/14 02:15:40 ID:???
>>285
まあまあ、Oracleだって4GBの境界でDBが
ぶっ壊れる仕様があるらしいぞ。
要はPC用RDBなど子供のオモチャということだ。

287 :NAME IS NULL:05/01/14 07:17:50 ID:86tIXLvb
>PC用RDBなど子供のオモチャということだ。
あのー、そのオモチャを銀行で使ってるんですが...

288 :NAME IS NULL:05/01/14 07:40:16 ID:???
>>286
いつの話だよ

289 :NAME IS NULL:05/01/14 09:25:51 ID:ajTKD0DU
>>285-287
で、壊れた場合、コマンドで復旧すんだおね?
まさか、SQL鯖とか復旧不可破壊なんて存在しないおね?

290 :NAME IS NULL:05/01/14 22:00:51 ID:86tIXLvb
>>284-286

詐欺師かおまえら。そんな煽り方やめろよ。
金も、知識もないユーザの何億円も出させて
にっちもさっちも行かなくなって泣いてるぞ。

ユーザの事を考えたことあるのか?

291 :NAME IS NULL:05/01/14 22:06:11 ID:86tIXLvb
データセンター・サーバなんて
32bitのパソコンに32Gバイトもメモリー積んで
全く無意味だ。

買ったオレもバカだった。何億円もドブに捨てた。
オマエらサーバ作るのは金輪際やめろ。

M$のクソ社員が。

292 :NAME IS NULL:05/01/14 22:36:28 ID:???
>>291
>何億円もドブに捨てた。

オマエが捨てたわけじゃなかろ

293 :NAME IS NULL:05/01/14 22:36:53 ID:???
DB2でもOracleでも同じだが、メモリ量やCPU数は最後の一押しだ。
そもそもメモリが大して無くてもCPU負荷が論理的に可能な限界まで
低くなるように設計・実装して初めて意味がある。
メモリ内操作だって負荷は結構あるんだから。

何億も使う前にまずそれぐらいやるか、やってくれる人間を雇えよ。

・・・・ということをMSは言わずに上のエディションを買わせるってのは同意だが。

294 :NAME IS NULL:05/01/14 22:59:36 ID:???
チューニングとか設定とかいい加減オートにならんのかね?
マシン入れたら自動的に分散して所定の設定にしたがってパフォーマンスをあげていくとか。

295 :NAME IS NULL:05/01/14 23:14:43 ID:86tIXLvb
>>292
ボケー。オレは事業主だ。
M$の安月給サラリーマンほどが何の根拠も責任もない発言するのだ。


296 :NAME IS NULL:05/01/15 00:31:44 ID:???
>86tIXLvb
もともと頭が悪かったのか精神に傷を負ったのか…
でもなんかワロタ

297 :NAME IS NULL:05/01/15 00:56:29 ID:???
仕事でM$の営業してる人に合った事あるけど、えらく態度がでかかったな。


298 :NAME IS NULL:05/01/15 00:59:17 ID:???
>>294
SQL鯖2005は大分自動化が進んだんじゃね?
少なくとも6.5とかの頃から見れば大分マシ

299 :NAME IS NULL:05/01/15 01:20:47 ID:???
質問致します。。
当方winxpでMySQL4.0.22を最初に使っていたのですが
ある日突然show databases;で見たら
mysqlが消えていて・・・
自分で作ったデータベースは残ってました。
それで新しくデータベースを作ろうとしてもエラーが出て
仕方なく再インストールしても相変わらず同じ状態でした。
それで調べて、まずsc.exeというツールが有って
それをコマンドプロントからsc delet MySQLとしてからc:\に有ったmyも消しました。
その後、再インストールしたら起動しなくなってしまって
今は4.1.8を使ってるのですがこれも最初固まったままで
今は何故か動くには動くのですが
出来ればMySQL4.0に戻したいですけども
正しいアンインストールとうか再インストールって出来ますでしょうか?

長文申し訳御座いません。

300 :NAME IS NULL:05/01/15 01:40:19 ID:???
>>299
もう一度スレタイ読め

301 :NAME IS NULL:05/01/15 01:48:22 ID:???
>>300
微妙に惜しいんだけどねぇw

302 :NAME IS NULL:05/01/15 01:48:27 ID:???
すいませんでした。

303 :NAME IS NULL:05/01/15 07:27:25 ID:???
MS SQL
MYSQL
にてるっちゃー似てるか

304 :NAME IS NULL:05/01/15 08:18:17 ID:???
これまでも相当の誤爆があったぞ w

305 :NAME IS NULL:05/01/16 14:51:03 ID:???
タイトルの付け方が悪いんだよ。
ぼったくりの方のとかいう接頭氏をいれたらどう?

306 :NAME IS NULL:05/01/16 16:23:12 ID:???
普通にMicrosoft SQL Serverでいいだろ

307 :NAME IS NULL:05/01/21 10:05:42 ID:o65aaURF
外部グローバルIPからSQLserverにADO接続を試みてるんだが、
pingは飛ぶけど(webサーバーとしては問題なく立ち上がってる)
portにすら到達出来ないってのは何処の設定が間違ってるんでしょうか?
(サーバー側のルータはportを開けてる)

308 :NAME IS NULL:05/01/21 13:34:37 ID:???
SELECT * FROM AAA;
とクエリーを実行するときに
特定の名前の項目「のみ」結果のカラムを排除したいんだけど
そういうSQLの書き方教えてください。


テスト結果のデータが書き込まれるテーブルが
たくさんあって(スキーマもたまに変わる)中身を比較したいんだど
タイムスタンプに使用している項目だけを
結果の表から排除したいんですが。


309 :NAME IS NULL:05/01/21 22:53:50 ID:???
>308
出来ない。
カラム一覧はsyscolumnsで取れるからそれ使って
動的なT-SQLをごりごり書くか、プログラム側で対処しなさい。

310 :NAME IS NULL:05/01/21 23:39:58 ID:???
>307
途中の経路でブロックされていない?
Portが塞がれているなんて言うのは良くある事なので。

311 :307:05/01/22 00:40:32 ID:???
>>310
すいません、途中の経路と言いますと何処での問題点が考えられるでしょうか・・?
win2003なのですが、正直win系のサーバーとなると尚更さっぱりです。
ちなみにサーバー内部のaccessからはSQLを拾えました。
ルータでは確かにportを開けてるのですが、外部から1433,1434に到達出来ない時点で
サーバーで何か設定する必要があるという事なのでしょうか?

312 :NAME IS NULL:05/01/22 14:18:45 ID:???
SPPかなんかで外から見て本当にそのポートが開いてるのか確認すれ

313 :NAME IS NULL:05/01/22 15:21:06 ID:???
ネットワーク構成書いたら?

314 :NAME IS NULL:05/01/23 00:32:50 ID:???
>>311
他の人も書いているけどネットワークの経路に問題あるんじゃない?
まずはサーバから直につないで設定が間違ってないことを確認してからだけど。

315 :NAME IS NULL:05/01/23 01:19:21 ID:???
slammerのパケットが未だに飛び交ってるから
ISPによっては1433/1434をブロックしてる可能性はあるな。
デフォルトインスタンスだけを使うなら1433だけ開いていればいい。

しかし、セキュリティの点から言って
SQLServerを直接外部に晒すのはやめといたほうがいい。
IISを噛ますとかして必要なデータだけ取れるようにしたほうがいいよ。

316 :307:05/01/23 07:09:22 ID:???
沢山のご返答有難う御座います。

>>312
数種類のnmapからsppまで試してみたのですが、
(ちなみにnmapは-p0オプションを付けないとブロックされてしまいました)
portがどういう状態なのかははっきりと判別出来ませんでしたが
(port1433-1434部分で非常に時間が掛かる)
存在しない=閉じられている?という結果のようです。
ネットワークの構成はルータ一台とその対象のサーバー一台(win2003,MSSQL2000)のみです。
設置して間もなく、また素人なもので他に特にややこしい事はしておりません。

>>315
やはりISP側でブロックしている可能性も考えられるのでしょうか・・?
避けたいのは重々なのですが、現状(試用段階)では複数の顧客別のデータベースを
そのサーバーに配置する方法以外に活路を見出す事が出来ませんでした。
とあるシステムの仕様がADO接続でデータベースに値を拾いにいくというものになります。

317 :NAME IS NULL:05/01/23 14:58:19 ID:???
>>316
極端な言い方をすると、データベースをインターネットに直結させるのは
故意にデータ漏洩させようとしてるようなもんだ。
仕様を考えた奴に文句言ってこい。

どうしようもないのなら、サーバネットワークユーティリティと
クライアントネットワークユーティリティで1433以外のポートを使うように設定すれば
ISPのポートブロッキングは回避できるはず。
その場合にもファイヤーウォールでアクセス可能なIPアドレスを絞り込んだほうがいい。

318 :NAME IS NULL:05/01/23 23:34:34 ID:???
初めてMSSQLserverを触ってみたのですが、
SQLserver認証に使うログイン名とパスワードは何処で作成出来るのでしょうか?
コンピュータの管理→ローカルユーザーとグループから作成したユーザーを
adminにしたのですが他に何か必要でしょうか?
そのユーザーでログインしても関連付けられていないと怒られてしまいます。

319 :NAME IS NULL:05/01/24 02:34:08 ID:???
>>318
select name from master..syslogins の結果を晒してみて

320 :NAME IS NULL:05/01/31 22:46:22 ID:w5VceGKx
OS:windows2000serverSP3
SQL Server(WEB_server)SP3*2台でリプリケーション(パブリケーションの種類はトランザクション)を
はっているんですがリプリケーション作成で自動に作成されるDBの容量が5ギガも食ってシステムドライブを
圧迫してしまうんですが何が原因なんでしょか・・・orz


321 :NAME IS NULL:05/01/31 23:48:40 ID:???
>>320
レプリケートされたデータをずっと残すような設定にしてるとか?
どれくらい残しておくかって設定があった気がするけど、何だっけ...

322 :320:05/02/01 00:59:37 ID:???
>>321
回答ありがとうございます。
レプリケーションはる際は基本的にデフォルトで行いました。
レプリケートはった後にやはりログの圧縮等行った方がいいのですかね・・

323 :NAME IS NULL:05/02/01 01:31:49 ID:45tpBUnc
int型のデータを16進数に変換するにはどうすれば良いですか?

324 :NAME IS NULL:05/02/01 01:52:40 ID:???
16進数について、ちゃんと理解してから出直してくれ。

325 :NAME IS NULL:05/02/03 01:20:58 ID:???
SQL Serverには、シフト演算子ってのは無いんですかね・・・

326 :325:05/02/03 04:29:45 ID:???
無いみたいなので結局自分で計算して終わりました。

327 :NAME IS NULL:05/02/03 22:11:04 ID:???
そのうちSQLServerに均等割付ないのかとかいうやつが現れそうだな。

328 :NAME IS NULL:05/02/04 00:14:04 ID:???
>>327
既に「SQL Server 2000 Reporting Services」にそういうこと言ってる人いますよw

329 :NAME IS NULL:05/02/04 01:48:50 ID:6b5hasz0
今使用中のコネクションを調べるsp_*はないですかね。

330 :NAME IS NULL:05/02/04 01:52:08 ID:???
SQLServerに縦書きは無いのですか?

331 :NAME IS NULL:05/02/04 02:07:37 ID:???
>>330
あるよ。

そんなくだらないことより、文字を影付きでSELECTできないので困ってます。
誰か助けてくだちい。

332 :NAME IS NULL:05/02/04 22:21:01 ID:???
>>329
sp_who activeとかじゃダメだっけ?

333 :NAME IS NULL:05/02/04 22:22:28 ID:???
>>331
ちゃんとディスプレイに蛍光灯の明かり当ててる?

334 :NAME IS NULL:05/02/05 00:46:39 ID:???
>>331
xmlだったら FOR XML FONT:SHADOW


335 :NAME IS NULL:05/02/07 19:11:43 ID:???
オブジェクトの権限の与え方で質問があります。

USE master
EXEC sp_addlogin '2ch_user', '2ch_password', '2ch'

USE 2ch
EXEC sp_adduser '2ch_user'

USE 2ch
GRANT SELECT, INSERT, UPDATE, DELETE
ON 2ch
TO 2ch_user

最後の GRANT 文なのですが、 2ch データベース上の全ての
オブジェクトに対して、権限を与えたいのですが、
2ch.* のような指定はできないのでしょうか?
(全てのテーブルやビューを列挙する必要がある?)

新規作成したユーザーに一括で権限を与える方法がありましたら
方法を教えて頂けると助かります。よろしくお願いします。

336 :NAME IS NULL:05/02/07 22:49:46 ID:???
DB個々に対してそういうシステムロールがあるから、それ使えばいい。

337 :NAME IS NULL:05/02/08 22:50:20 ID:???
ユーザー定義関数について質問です

Create Function hoge(@str VarChar(8000))
Returns VarChar(8000)
Begin
Declare @buf VarChar(8000)

Exec 拡張ストアード @buf, @str

Return @buf
End

こんな関数をつくりまして、拡張ストアードは
第二引数の半角カナを全角にした文字列を第一引数に
格納してやる関数です

それで
Select hoge('abc'), hoge('def')
というクエリを発行したところ、

abc def
返ってこなければならないのに、なぜか

abc abc

と返ってきてしまいました。
どうも、関数内の@bufが単一のトランザクションだと
そのトランザクション内で永続(Cのstatic変数みたいに)
してしまうのが原因のようなんですが、対策はありますか?
カナ変換はどうしても、関数形式で行いたいのですが・・・

338 :NAME IS NULL:05/02/12 20:18:29 ID:caNESZXy
AccessのMDBで、SQLサーバに接続するリンクテーブル
を作成しています。
SQLサーバにあるテーブルのdatetime型の列をSQLで
whereで条件指定するのに、どのようにSQLを書けばよいの
でしょうか?

where date_field > convert(datetime, '2005/02/12')

ではうまくいかないようなのですが。。。

(SQLServer2000 + Access2000 です)

339 :NAME IS NULL:05/02/12 21:22:18 ID:???
Accessでは日付はシャープ記号で囲むんじゃなかったっけ

340 :NAME IS NULL:05/02/12 22:43:37 ID:???
>>338
where date_field > #2005/02/12#

341 :NAME IS NULL:05/02/14 13:33:08 ID:cbuJYR/o
SQLSERVER2Kを使用していますが、
先週あたりから、DBが壊れた(?)状態になっています。
エンタープライズマネージャーでDBをみてみると、
一箇所だけ、読み込み中\未確認(だったと思う)になっていました。

お客様のPCなので、離れていてどうしようもないのですが、
対処方法となぜそうなったのか原因を教えていただけますでしょうか?
よろしくお願いいたします。

342 :NAME IS NULL:05/02/14 16:39:43 ID:dNOSGJui
会社の方針でSQLサーバー推していくことになって、Oracleから乗り換えたけど、SQLサーバーいいね。
解説書とか順序よく説明してあってわかりやすい。
まるで中身のない解説本を必死で調べてた俺がバカみたい。
圧倒的に効率がいいよ。
早く気づけばよかった。
そんなけ。

343 :NAME IS NULL:05/02/14 17:31:26 ID:???
新聞休刊日でチラシが無かったのか…

344 :NAME IS NULL:05/02/14 19:14:52 ID:INoI1MeN
MSDE2000で定期的(日に1度)にフルバックアップを取りたいのですが
どんな方法があるでしょうか?

OS:Windows2000Server

345 :NAME IS NULL:05/02/14 21:29:23 ID:???
>>344
ファイルそのままコピー。

SQLServerならVeritusやArcServeでサービス落とさなくてもそのままバックアップ取れるけど、MSDEはどうなんだろ?


346 :NAME IS NULL:05/02/14 22:58:08 ID:???
なんでバックアップソフトが出てくるのかわからん。
SQLAgentでbackup databaseすれば十分じゃね?

>>341
ディスクコントローラが死んだ時なんかでDBのファイルが完全に見えなくなるとそうなると思った

347 :344:05/02/14 23:35:35 ID:INoI1MeN
やりたい事をもう少し詳細に書きます。

指定したデータベースのフルバックアップを毎日決まった時間に取りたいのですが
その時バックアップしてできるファイル名に日付を入れたいのです。
例えば BK20050214.dat のように
指定したフォルダに日付の違うファイルを蓄積したいのです。

これを実現するのに SQLAgentというという方法でも可能でしょうか?
また他に何か良い方法はあるでしょうか?

SQLAgentについては自分でも調べてみます・・・



348 :NAME IS NULL:05/02/15 00:31:13 ID:???
>>347
SQLAgentでもいいし、適当なスケジュールソフトからosql.exeを叩いてこんなSQLを実行すればいい
構文の詳細はBooksOnlineで調べられる。

backup database DBNAME to disk='c:\path\dumpfile.dmp' with init

日付の生成はgetdate()とconvert()なんかを組み合わせれば何とかなるでしょ。

349 :NAME IS NULL:05/02/15 13:24:24 ID:???
ジョブを組んで、ネットワークドライブに定期自動バックアップを取得したいのですが、
うまくいきません。

以下の実行が失敗します。

BACKUP DATABASE [db名]
TO DISK = 'Z:\db.bak' WITH NOINIT,
NAME = 'full backup', NOSKIP

バックアップ先のZは、ネットワークドライブです。
Zではなくローカルディスクを指定すると、うまくいきます。

しかたがないので、一旦バックアップをローカル(例えばc:\xxx\)に保存して、
その後にバッチでネットワークドライブにcopyするジョブを組んだのですが、
これもうまくいかず。

copy c:\xxx\* Z:\

上記コマンドも、SQL Serverエージェントによるジョブ実行ではなく、
コマンドプロンプトから直接叩けば正常に実行できるのですが……。

なにか対策はあるのでしょうか。


350 :NAME IS NULL:05/02/16 00:37:05 ID:RxQsAWRN
PHPを使用している人、PEAR DBまったく使わないでウェブサイト作ってる人いる?
商用サイトだとPEAR使わない?

351 :NAME IS NULL:05/02/16 00:52:30 ID:???
>>349
ttp://www.microsoft.com/japan/msdn/sqlserver/columns/agent/agent1.asp

あたりにSQL Serverエージェント用のアカウント割り当ての話があるけど、
今割り当てられているエージェント用アカウントがそのネットワークドライブへの
アクセス権限を持ってないのじゃないの?

352 :NAME IS NULL:05/02/16 15:00:04 ID:/s8eBzBZ
ユーザー関数を使用してストアド実行すると、マルチCPUでも1つのCPUしか
動かないというのは、バグ?仕様?

353 :NAME IS NULL:05/02/16 15:00:11 ID:/s8eBzBZ
ユーザー関数を使用してストアド実行すると、マルチCPUでも1つのCPUしか
動かないというのは、バグ?仕様?

354 :NAME IS NULL:05/02/16 21:31:00 ID:???
http://pc5.2ch.net/test/read.cgi/hosting/1106812588/268

355 :NAME IS NULL:05/02/16 22:18:58 ID:???
>>349
ネットワークドライブにしないでUNCにすれば?
\\servername\sharename\path\filename みたいなやつ。

356 :NAME IS NULL:05/02/16 23:01:30 ID:???
>>349
ネットワークドライブってのはログインしてなきゃ使えないのは知ってるよね?


357 :341:05/02/21 14:06:07 ID:JC4rlMQl
>>346
お返事遅くなりました。
すみません。
ディスク上のファイルは見えていますので、
ディスクコントローラーは正常だと思われます。

本日、もう一度お客様の所に行って、
スクリーンショットやログを持ち帰ろうと思います。

かえってき次第、直ちに症状やログの詳細を細かく書かせていただきます。

358 :NAME IS NULL:05/02/21 21:10:02 ID:???
SQL Server って、SELECT の WHERE句で正規表現を使った検索はできますか?
MySQL や PostgreSQL みたいな感じの。


359 :NAME IS NULL:05/02/21 22:01:10 ID:???
likeじゃなくて?

360 :NAME IS NULL:05/02/21 22:02:11 ID:???
>>358
ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/tsqlref/ts_la-lz_115x.asp

361 :358:05/02/21 23:21:04 ID:???
LIKE じゃなくて、たとえば
ttp://www.postgresql.jp/document/pg801doc/html/functions-matching.html#FUNCTIONS-POSIX-REGEXP
みたいなのは、やっぱりできないのかな


362 :NAME IS NULL:05/02/22 00:16:33 ID:YP5YskFD
オープン系の業務システムでDBMSとして
SQLServerを使用して大規模な業務アプリケーションを構築する計画があります。
あるテーブルのサイジングの結果、稼動後数年後に数千万〜億件クラスの
テーブルになりそうな雰囲気です。
このテーブルは夜間バッチ処理でレコードが生成され、昼間オンラインによる
照会業務が発生します。
データベースの物理設計上の留意点をアドバイスいただけると助かります。
唐突ですいません。


363 :NAME IS NULL:05/02/22 02:11:46 ID:???
>>361
2000はできない。2005は知らないけど、できそうな気もする

>>362
http://www.google.com/search?num=50&hl=ja&inlang=ja&newwindow=1&c2coff=1&q=+site%3Awww.microsoft.com+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E7%89%A9%E7%90%86%E8%A8%AD%E8%A8%88&lr=lang_ja

364 :358:05/02/22 20:57:29 ID:???
>>363
情報 thx
2005のドキュメントも読んでみたけど、2005 でもできないっぽい


365 :NAME IS NULL:05/02/23 14:47:29 ID:BMRNKWo4
カラムが、idとnameだけだったとして、idを主キーにしてIdentityインクリメントで連番を振った時、
INSERT時に、同時にそのとき振られた連番の数字の値を知ることは可能なのでしょうか?

Webで検索してみたら、Identityの連番は振りなおす方法があるようなので、
ということは、上記の質問の内容自体が馬鹿げた考えなんでしょうか?

366 :NAME IS NULL:05/02/23 14:53:18 ID:???
@@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT

367 :365:05/02/23 16:26:16 ID:???
できました。有難うございました。他の人のお役に立てれば・・・

string sqlStr = "INSERT INTO names (name) VALUES (@name); "
  + "SELECT ID = SCOPE_IDENTITY() ";
<<略>>
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
id = int.Parse(dr["ID"].ToString());
conn.Close();


368 :NAME IS NULL:05/02/24 12:51:05 ID:???
DBをまたいでテーブルの連結はできますか?
というのはマスタ系とトランザクション系の2つのDBを考え中で
トランザクションのバックアップがとりやすいかなぁって思ったんですがどうでしょ

369 :NAME IS NULL:05/02/24 19:39:55 ID:???
できるけど、んな目的ならファイルグループわけりゃいいじゃん

370 :NAME IS NULL:05/02/24 20:52:38 ID:???
DB分ける事を考えなきゃならん程の大規模システムなのか?
バックアップがとりやすくなるかどうかも怪しいし、何より整合性が・・・

371 :NAME IS NULL:05/02/24 21:15:33 ID:???
>>368
分けた方が別々にとらないかんからよけいめんどうじゃない?

372 :368:05/02/24 23:49:58 ID:???
ありがとうございます
>>369 >ファイルグループ 調べてみます
>>370
>大規模システムなのか?
ぜんぜん小規模です。商品マスタの例ですと1万件程度です
トランザクションも1日400件程度です
>何より整合性が・・・
いわゆる伝票、納品書、請求書処理なんですが、整合性機能?は手動でやっています
>>371
>分けた方が別々にとらないかんからよけいめんどうじゃない?
バックアップ単位がDB単位だと思ったのでマスタは登録後の1回であとはトランザクションの
履歴バックアップをしようと思いましたがやはり面倒そうですね

373 :NAME IS NULL:05/02/25 00:13:16 ID:???
マイクロソフト、SQL Serverのソースコード公開を検討
http://japan.cnet.com/news/ent/story/0,2000047623,20080888,00.htm

374 :NAME IS NULL:05/02/26 04:40:44 ID:Wl/nL1pu
MSにとって
オープンソースのメリットなんかないだろ

375 :NAME IS NULL:05/02/26 10:47:19 ID:???
.NET開発環境インスト
IISインスト
SQLサーバーインスト&構築
で、設定終わってから気づいたのだけどインストしたドライブが
FATでフォーマットされていた。。。。
これはNTFSじゃないとマトモに稼動しないのかな。。。?
テーブル作成している最中ですが一応現段階で特に支障なさそうな感じです。


376 :NAME IS NULL:05/02/26 11:00:01 ID:???
運用しだしたら問題だらけだろ。
今すぐ変換しろよ。

377 :375:05/02/26 14:00:35 ID:???
変換したよ。
したけど2Kブートできなくなっちゃった。。。泣
ntoskrnl.exe見つからないそうです。。
ぐぐってくるか他板いって来ます。。。。。。

378 :NAME IS NULL:05/02/26 14:52:37 ID:???
>>374
オープンソースにするとはどこにも書かれてないが。
シェアードソースプログラムは契約した顧客にだけにソースを見せてる。
それにSQLServerを含めるかもしれないと言ってるだけ。

379 :NAME IS NULL:05/02/26 15:28:33 ID:yssbHtOG
MS、SQL Server 2005の構成と料金体系発表
米国での料金はEnterprise Editionがプロセッサ当たり2万4999ドル/サーバ当たり1万3499ドル、
Standard Editionはプロセッサ当たり5999ドル/サーバ当たり2799ドル、
Workgroup Editionはプロセッサ当たり3899ドル/サーバ当たり739ドル。
Express EditionはMicrosoft Data Engine(MSDE) for SQL Server 2000の後継となる製品で、SQL Server 2005データベースエンジンの無償バージョンとなる。

たけ〜よ
h ttp://headlines.yahoo.co.jp/hl?a=20050225-00000006-zdn_ep-sci

380 :NAME IS NULL:05/02/26 17:58:17 ID:???
まいったなぁ。。。ちょっと誰か分かる人いないかなぁ。

IBMのServerRAID-6M Ultra320っつーサーバでSQLServer2004 Enterprize Edition
で運用してるんだが、約1ヶ月ぐらいするとSQLServerが何故かサービス停止状態に
なるんだよね。Web(ASP.net)+上記DBサーバって感じ。
Serverの負荷は大体90%程度で安定しちゃってる。

Web自体のアクセス数自体は1日平均80万ぐらいと大したアクセス数じゃない。
トランザクションにしても10秒間に約5千Attachぐらいで、これも大した事はない。
だけど落ちる。停止状態から開始状態にしてもWebとの関係が切れてるからWebServer
も再起動しないといけない。この状態が約3ヶ月程続いてる。
客から落ちた時のクレームが余りに鬱陶しいんで改善したい。
業者も分からん分からんと・・・

どないせーと・・・

381 :NAME IS NULL:05/02/26 18:43:25 ID:???
>>380
原因を分析するスキルのある人間が近くに居ないなら
ツールで解決するしかないんじゃないの。
NetIQが高負荷で落ちたSQLサーバやIISを自動的に再起動する
ソフト売ってるYO

382 :NAME IS NULL:05/02/26 19:18:24 ID:Iv5bpOEt
SQL Server 2005のMCPはどうなるやら。

383 :NAME IS NULL:05/02/26 20:11:35 ID:???
>>380
SQLServer2004って何だよ
それはいいとして、これで直るかどうかわからんけど
MSに文句つけてhotfix出してもらったら?

http://support.microsoft.com/default.aspx?scid=kb;en-us;810185

SQL Server 2000 build 8.00.0996
891268 FIX: You receive a 17883 error message and SQL Server 2000 may stop responding to other requests when you perform large in-memory sort operations
891017 FIX: SQL Server 2000 may stop responding to other requests when you perform a large deallocation operation
891201 FIX: Performance is significantly reduced when you set trace flag 9134 to prevent error message 601 in SQL Server 2000

384 :NAME IS NULL:05/02/27 00:01:31 ID:???
>>381
早速みてみよう。ありがとう。
>>383
ちっと契約でDB自体へのUPDATEが私では制限されるので、今一度その情報を
交えて業者に観て貰おうと思います。どうもありがとう。

385 :NAME IS NULL:05/02/27 07:59:20 ID:???
>>380
定期的に落ちるのなら落ちる前に計画的に再起動させればいいんじゃないの?

NetIQの製品のことは知らないけど
落ちたサービスを自動再起動するくらいの機能はOS標準で持ってるぞ
SQLが死んだときにSQLの再起動と同時に
iisresetコマンドを実行するように設定すればさらにベターかな

386 :380:05/02/27 09:39:04 ID:???
>>385
なるほど。確かにシステム的に絶対に落とせないっつー代物でもないので、
TOPPAGEにでも記載して計画的に再起動すると言う手もあるね。
但し、、、根本が解決しないと落ち着かないと言うのもある。

どうしても解決できない場合に考慮に入れてみようかなと。
ありがとう。

387 :NAME IS NULL:05/02/28 00:44:27 ID:???
LAN環境で複数のPCからMSDEを利用しようとすると、
WinXP機では接続できるのに、WinMe機では接続できね〜。

何か特別な設定が必要なんだろうか・・・。

388 :NAME IS NULL:05/02/28 10:50:52 ID:???
>>387
MeのMDACのバージョンがおかしいとか。

389 :NAME IS NULL:05/02/28 12:42:47 ID:???
名前付きパイプでつないでる?
その場合、MeからMSDE機のIPC$を見る権限が無いと繋がらないよ。

390 :NAME IS NULL:05/02/28 12:42:55 ID:???
すいません。DBのリカバリについてお聞きしたいのですが、testというDBをバックアップして
復旧する場合EnterPriseマネージャからデータベースの復旧を選択すればバックアップした時点に
戻ると思うのですがOSとSQLServer2000から入れなおしたシステムに復元する場合は
システムデータベース(masterやmodel)のバックアップもとっておいて復元する必要は
あるのでしょうか?

391 :NAME IS NULL:05/02/28 12:49:54 ID:???
サーバーにリリースする前はクライアントで開発することにして
.NETからIIS、SQLとセッティングしたのです。
その後、自分の端末のCドライブがFATということに気づき
前スレでFATのままでも大丈夫か?質問したのですが。。。
パーティーションコマンダーでNTFSに変換するとbootしなく
なりknoppixで他データ救出後、再インスト。
でもまたFATになってしまって(NTFSフォーマットはしてくれない)
それでまた聞きたいのですがクライアント側でもやはりNTFSじゃないと
だめですか?
FATで開発できてもリリースの際何か障害出るでしょうか?

392 :391:05/02/28 19:08:35 ID:???
自己解決しました。
FAT32でも使えるらしいです。

393 :NAME IS NULL:05/02/28 20:41:25 ID:???
そりゃ、FATじゃ使えないなんていう制限は無いよ。
NT系OS使うのにFAT使うのが馬鹿げてるってはなしだ。

394 :NAME IS NULL:05/02/28 21:03:53 ID:???
開発環境がFATだとパーミッションの問題に気がつかない可能性はあるかも

395 :NAME IS NULL:05/02/28 22:11:05 ID:???
FAT(32)とNTFSの勉強をすることを勧める。

396 :387:05/03/01 00:30:16 ID:???
>>388
バージョンがおかしいというと、古いってことでしょうか?
うーん、一度入れ替えてみるかな。

>>389
TCP/IPで繋ごうとしてます。
CLICONFGでTCP/IPを優先して、ポート番号もあわせてるんだけどなぁ・・・

397 :391:05/03/01 10:57:23 ID:???
いや、、OSインスコでFAT32がデフォになっているのです。
富士通のPCなんだけど。
WIN2Kだから特に意識してなかった。NTFSが当たり前と思ってたから。

398 :NAME IS NULL:05/03/01 18:25:49 ID:5GDPCIsV
MSDEの再インストールがうまくいきません…
saのパスワード忘れちゃったんで、再インストールが必要になったのですが、
再インストール後にログインできません。
再インストールの順序としては

コンパネからMSDE削除

ProgramFilesからMicrosoftSQLServerフォルダ削除

レジストリからHLM\SOFTWARE\Microsoft\MSSQLServer以下削除

インストール(setup.exe SECURITYMODE=SQL SAPWD="sa")

これでサービスからMSDE起動後に
コマンドプロンプトから"osql -Usa -Psa"とするのですが、
「ユーザー’sa’はログインできませんでした」と表示されます。
"osql -E"ならログインできるのですが、saを使いたいもので…
どなたか問題ご指摘して下さいませんか?OSはXPです。

399 :NAME IS NULL:05/03/01 22:52:55 ID:???
>>398
Windows認証でログインできるならsysadminロールのメンバが既定のままなら
管理者権限でログインすればsaのパスワードは変更できたはずだけど

400 :399:05/03/01 23:04:26 ID:???
と思ったけどWindows認証じゃsp_passwordは使えないよな。
再インストール自体はREINSTALL=All REINSTALLMODE=omusを最初のインストールオプションに加えればいいけど
最初のインストール時に指定したSAPWDが判らないんじゃな…。
インスタンス名を既定から変えるのは駄目かな?

401 :NAME IS NULL:05/03/02 00:06:06 ID:???
Windows認証だけにしててもsaに対するsp_passwordは有効だよ

402 :NAME IS NULL:05/03/02 12:04:43 ID:???
>>399
>>401
問題解決しました!ホントありがとうございます!

403 :NAME IS NULL:05/03/02 22:43:27 ID:???
msde2000をxp-homeにインストールして使ってますが、たまに10029最大数のdbprocessを
超えましたとエラーが出ます。
何が原因ですか?

404 :NAME IS NULL:05/03/03 11:34:59 ID:???
たぶんdbprocessを使ってMSDEをたたいているアプリが原因。
クライアントソフトを作った人に聞いてみたら?

405 :NAME IS NULL:05/03/03 17:12:30 ID:???
素人じみた質問で申し訳ないのですがmdfファイルをコピーして
持出されると中身見られちゃうのですがどのように対策すべきなのでしょうか?



406 :NAME IS NULL:05/03/03 18:07:25 ID:???
>>405
ネットワークユーザーから見えない位置に配置する。アクセス権を設定する。
サーバーのオペレータを限定する。サーバールームへの出入りを制限する。
バックアップテープは金庫にしまう。ピンポイントで非常に大事なデータは
暗号化しておく。外注をあんまりいじめない・・などいっぱいありますね。

407 :NAME IS NULL:05/03/03 19:26:57 ID:???
>>406
最後に「ウム」と大きく肯くのであった、マル。

408 :NAME IS NULL:05/03/04 19:00:12 ID:???
あるソフトのテーブル定義書を見ると
プライマリーキーに varchar をふんだんに使っているのですが
SQL Server では、一般的なことなんでしょうか?

どうせ固定長しか入っていないので char でいいと思うし、
char の方が処理が早いと思うのですが。
しかも、入っているデータは 00123 などの数値型であらわせるデータのみ
なので数値型にしたほうが断然早いと思うのですが。
みなさんはどう思いますか?
なにか varchar だといいことあるんでしょうか?

わざわざ 1 を '00001' のようにして書き込んで '00001' で検索しないといけないし。
利点があまりないような気がするのですが。


409 :NAME IS NULL:05/03/04 21:26:20 ID:???
COBOLerが作ったんじゃないのか?

410 :NAME IS NULL:05/03/04 21:50:51 ID:???
設計者の趣向もありますが数量的な意味を持たない数字は文字列扱いに
することは普通だと思います。
varchar, char の処理効率や格納効率は処理系によって違うのですが、
SQLServerはどうなのかな。明らかに差が出るなら使い分けるべきだろうし
差がわずかならどうでもいいやだろうし。
ただ最近の言語の文字列型は可変長文字列だから、そのままvarcharを
多用する傾向にあるようです。

411 :NAME IS NULL:05/03/05 11:17:09 ID:???
MSSQLは内部処理がUNICODEだからncharやnvarcharを使うのが
速度的に有利って本で読んだ希ガス。
変換によるタイムロスが少ないとか何とか。これウソ?

412 :NAME IS NULL:05/03/05 13:27:06 ID:???
同じロケールの非UNICODE文字はそのまま比較してると思ってましたがどうなんでしょう。
ANSIとUNICODEの変換が発生しても表引きでやってるでしょうから負荷は少ないのでは。
むしろロケールを意識した辞書順比較のほうに時間がかかってるように思います。
フィールドレベルで照合順序を制御できたらパフォーマンスがあがりそうですけどね。
テキスト検索でもない限りバイナリ比較で十分な気がします。

413 :NAME IS NULL:05/03/05 14:39:16 ID:???
nvarcharとvarcharを混ぜこぜにして使ってると
本当はコード変換が1回で済むようなクエリだったのに
レコードの数だけ変換するようなプランになってしまって
やたらとパフォーマンスが落ちたことがある

>>412
CREATE TABLEでカラムごとにCOLLATEを設定できる。

414 :NAME IS NULL:05/03/05 15:28:02 ID:???
SQL Server 2000 です。
データベースのフルバックアップを取りたいのですが、
今は、デタッチ、実ファイルをコピー、アタッチという手順を踏んでいます。

上記の場合、SQL Server に接続しているユーザーが 一人でもあると
バックアップが取れません。

このあたり接続しているユーザーがいてもフルバックアップを取るなんて
事はできませんでしょうか?

また、将来的には、なんらかのプログラム(C#, VB.NET)から、
上記のようなフルバックアップを取りたいと思っています。

このあたりの実装に対してキーワードなどでも結構ですので
アドバイスを頂ければと思います。
よろしくお願いします。

415 :NAME IS NULL:05/03/05 15:50:19 ID:???
>>414
エンタープライズマネージャかTransact-SQLのBACKUPコマンドで
オンラインのフルバックアップができます。
物理ファイル丸ごとコピーでのバックアップはあまりやりません。

416 :NAME IS NULL:05/03/05 15:59:15 ID:???
>>413
なるほど、いろいろ混ぜて使ったら扱いが難しくなりそうですね。
計画的に使い分けるか、最大公約数の設定で一律に使うか悩みそう。

417 :414:05/03/05 20:49:15 ID:???
>>415
ありがとうございます。BACKUP コマンドでバックアップが可能な事を
確認できました。

BACKUP は接続中のユーザーがいても可能で、
RESTORE は、接続中のユーザーがいる場合は不可

という事で間違いないでしょうか?

度々すみませんがよろしくお願いします。


418 :NAME IS NULL:05/03/06 18:20:55 ID:shHqu4v4
SQL Serverのクエリ、またはストアドを使って

"AAA"
"BBBBB"
"CCCC"

というような文字列の後ろは

"AAA  "
"BBBBB"
"CCCC "

のように、一定の幅になるようにスペースで埋めたいのですが、
何か方法はありますでしょうか。

419 :NAME IS NULL:05/03/06 18:32:02 ID:???
こんな感じかな。
select LEFT('AA' + SPACE(10), 10)

420 :NAME IS NULL:05/03/06 18:33:44 ID:???
419 文字数で処理しているから漢字が混じったら知らんです。

421 :NAME IS NULL:05/03/06 18:37:00 ID:???
>>419
おお!SPACEは知りませんでした。ありがとうございます。

422 :NAME IS NULL:05/03/06 20:35:59 ID:???
俺なら convert( )で char(5)に

423 :NAME IS NULL:05/03/06 22:49:40 ID:???
テーブルの Identity を設定した場合、次に割りあてられるべき値が
列のデータ型をオーバーする時、どのように処理されるのでしょうか?

また、先頭へ戻って自動採番してくれるのでしょうか?
それともそうならないように、なんらかの対応を行なう必要があるのでしょうか?


424 :NAME IS NULL:05/03/06 23:40:16 ID:???
そのままだとオーバーフローします。
DBCC CHECKIDENT ('tablename', NORESEED)
なりして調べるしかなさそう。

425 :NAME IS NULL:05/03/07 00:01:46 ID:???
>>423
オーバーフローの心配をしたくないならbigintを使えば?


426 :NAME IS NULL:05/03/08 10:30:34 ID:???
>>417 回答ではないですが、その質問は気になります
  1 BACKUP は接続中のユーザーがいても可能で、
  2 RESTORE は、接続中のユーザーがいる場合は不可
1に関してはどんな稼動状況でもうまくその時点のバックアップしてくれそうだけど
2についてはあきらかに接続ユーザに影響がでてくると思います

しかし、あれですバックアップは単純にユーザデータベースだけでいいのか素人的にすごく悩む

427 :NAME IS NULL:05/03/08 12:13:13 ID:???
>>414>>417
バックアップするときは、特別な理由が無い限りオンラインバックアップするべき。
ファイルコピー型のバックアップでは「障害直前の状態」に復旧することが出来ない。
バックアップと復旧の仕組みは少しややこしいから覚えるまでが大変なんだけどね。

RESTOREコマンドもGUIでの復旧も、接続ユーザが居る場合は不可。
だからシングルユーザモードで行う。
データベースのプロパティに[オプション]タブが有るから、そこでシングルユーザモードに
切り替えられる。

>>426
masterデータベースのバックアップは必須。
必須ではないけど、復旧にEnterpriseManagerを使う人は
msdbデータベースのバックアップがあると作業が楽になる。
tempdbのバックアップは不要。

428 :NAME IS NULL:05/03/08 12:45:39 ID:???
1件消しちゃったから1件だけ元に戻してくれみたいな運用が頻発する場合
メディア障害用のバックアップのほかにbcpなどでデータを保存することはある。
この手のリカバリならオンラインでもできるちゃできる。
だれだこんなシステム作ったやつはブツブツ・・

429 :426:05/03/08 13:48:31 ID:???
>>427 ありがとうございます
バックアップとリストアにはEnterpriseManagerを使おうと思います
手順ですがバックアップ、リストア共に
master -> msdb -> user_dababase
の順序で操作したら間違いないでしょうか?

430 :NAME IS NULL:05/03/08 13:56:59 ID:???
>> 427
横から質問ですみません。
master, msdb などバックアップをせず、user_database のみバックアップ
がある状態で、user_database をリストする事はできないのでしょうか?


431 :NAME IS NULL:05/03/08 15:29:02 ID:???
>>430
ユーザデータベースだけでも復旧できるよ。ただ、

masterに障害が発生するとアカウントやロールの情報が失われるから面倒なことになる。

msdbはバックアップの履歴を保持しているから、サーバ全体の障害時にmsdbとユーザデータベース
両方のバックアップが無事ならEnterpriseManagerから簡単に任意の時点への復旧ができる。
それとmsdbにはDTSやSQL Server Agentの設定など色々と保持されてる。

こんな感じのリスクや利点があるからmasterやmsdbのバックアップも行ったほうが良いよ。

432 :NAME IS NULL:05/03/08 15:44:26 ID:???
>>429
それで良いけど、例えば「復旧モデル」なんていうことにも気を配らないといけないから
解説書を読んでおいた方がいいよ。

ここの「6.バックアップ編」
http://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp

433 :NAME IS NULL:05/03/08 19:20:43 ID:???
>>432 勉強になりました
現在の復旧モデルは毎日完全バックアップでしたので非常に単純ですね
最新バックアップ+ログはいわゆる前進復帰って思って正しいでしょうか
ここで疑問に思ったのですが、完全バックアップをとったものが常に最新とはかぎらないですよね??
というのはトランザクションログが適用されていないない場合もあるのかな?って思ったからです


434 :NAME IS NULL:05/03/08 19:50:25 ID:???
>>433
前進復帰で正しい。ロールフォワードってやつね。

「トランザクションログが未だmdfファイルに反映されていない状態」の
オンラインバックアップが心配ってこと?
確かにそういう状態でバックアップを開始してしまうこともあるだろうけど、
「バックアップが完了する直前」に「その時点で最新のトランザクションログ」を
バックアップに反映してくれる。反映したらバックアップが完了する。
だからあまり心配要らないと思うよ。

質問を勘違いしてたらスマソ

435 :433:05/03/08 23:54:48 ID:???
>>434
>>オンラインバックアップが心配ってこと?
>>あまり心配要らないと思うよ。
サンクスコ
納得しますた。

436 :NAME IS NULL:05/03/09 14:46:36 ID:iwoaD9MA
全体バックアップ、前日のログバックアップとLDFログファイルがあります。
リカバリ直前にログのバックアップを取っていなかったために、
前日のログバックアップ時点までしか復旧できませんでした。
リカバリ直前のLDFログファイルは保存しているのですが、
これから当日分までの復旧をする方法はありませんか。

437 :NAME IS NULL:05/03/09 16:37:40 ID:???
そのldfが全体バックアップ以降当日分までの全トランザクションログを
保持していると仮定しての話だけど、

SQLサーバのサービスを停止
ldfファイルを上書き
SQLサーバを起動 (この部分でロールフォワード?)

この順序でロールフォワードしてくれるんじゃないかと思う。
自信がない。ウソ言ってるかもしれんから試すなら気を付けて。

438 :NAME IS NULL:05/03/09 17:37:10 ID:???
回答ありがとうございます。しかしだめでした。

ログ ファイル 'xxx.LDF' がプライマリ ファイルと一致しません。
別のデータベースのログか、以前に再構築されている可能性があります。

439 :437:05/03/09 18:06:59 ID:???
>>438
残念ですた。他の方法を思いついた。

まず RESTORE DATABASE DB名 WITH NORECOVERY を実行
そして >>437の作業を実行
エラー無しで起動出来たら RESTORE DATABASE DB名 WITH RECOVERY を実行

これも勘でしかないから気を付けて。復旧の偉い人が降臨してくれたら良いんだけどね。

440 :NAME IS NULL:05/03/09 22:02:23 ID:1ImZYU2T
ここにmysqldumpで取ったバックアップファイルがあります。
これをリストアしようと
mysql -uuser -ppass db < dumpfile.dmp
したのですが、TEXTフィールドで改行が入った文字列が上手く入りません。

dumpfile.dmpを見ると「3月4日\r\n私から\r\n田中さんへ\r\n」のように改行はエスケープされています。
しかしこれをインポートしてみると「3月4日\r<改行>私から<改行>田中さんへ\r<改行>のように所々「\r」が
残ってしまいます。

MySQLのバージョンは4.0.20-logです。
よろしくお願いします。


441 :NAME IS NULL:05/03/09 22:05:08 ID:???
>>440
スレタイトル見直してみ

442 :NAME IS NULL:05/03/09 22:14:05 ID:???
>>441
おお!大歩危かましました。失礼

443 :NAME IS NULL:05/03/10 08:24:26 ID:MNpv5jzh
↓の記事によれば
http://www.atmarkit.co.jp/fwin2k/insiderseye/20050309sql/sql.html

SQL Serve 2005では、Standard Editionで
2ノードフェールオーバクラスタをサポート

そして価格は、
サーバライセンス29万3000円
CPUライセンス62万9000円

DBのクラスタリングを実現するために
クソ高いEnterpise Editionを購入してた人にとっては、
すさまじいディスカウントじゃない?


444 :システムあねご ◆AJ5mpDlzVg :05/03/10 14:06:46 ID:2o+eBERu
お助け下さい。

WIndows2000 server SQL6.50を使用しています。
今朝クライアントから接続できない旨連絡を受け、サーバで確認してみると
server enterprise manager上では青信号の表示なのに、右クリック→
環境設定をクリックすると「接続が確立できませんhogeー[DB-Library]接続できません。SQL Serverが
利用できないか、存在しません。指定されたSQL Serverが見つかりません」と表示されて
接続できません。

変化点は2−3日前にuserconnection数を15から50に変更したのみ。
(変更から今日の朝までは問題なく稼動していた)
イベントビューワにもエラーがなく、またサービスもMSSQLとSQLserverは起動しているようです。

なにかご存知の方、何でも結構ですので情報を・・・お願いします。


445 :システムあねご ◆AJ5mpDlzVg :05/03/10 14:14:24 ID:2o+eBERu
ってここでよかったのかな・・・
MSSQL質問スレが見当たらなかったので質問してみたのですが・・・
すれ違いだったらごめんなさい。ちょっと追い詰められてたりします。
ウウ。

446 :NAME IS NULL:05/03/10 14:29:33 ID:???
全角半角大文字小文字が入り乱れてる書き込みをする人だから
原因はどうしようもないケアレスミスなんだろうと思う

とりあえずSQL Serverのエラーログも見てみたら?

447 :システムあねご ◆AJ5mpDlzVg :05/03/10 14:48:46 ID:2o+eBERu
すいません、わりとギリギリなので>大文字小文字

エラーログは見たのですが、障害復旧?だか回復?は書いてあるのですが
エラーっぽい内容がないんです・・・

でもありがとうございます、もう一度全ログ確認してみます。



448 :システムあねご ◆P2bEA4mHeU :05/03/11 03:13:40 ID:+hn9C0uA
トリップ間違ったかな・・・

とりあえず結局復旧は無理でした・・・
今入れなおし中・・・(´・ω・`) ショボーン

449 :NAME IS NULL:05/03/11 09:51:30 ID:???
そのクライアントがSQLServerが走っているPCを認識できるのかとか、
他のクライアントではどうなのかなど、問題の切り分けをしていった方がいいんじゃないか?

そんな問題じゃないのか…。

450 :NAME IS NULL:05/03/11 13:10:47 ID:???
SQL65ってことはNT40ですか?懐かしい
確かMSのサポートも終わってますね

>>444
>変化点は2−3日前にuserconnection数を15から50に変更したのみ。

うる覚えなんですが、SQLServer65のライセンス形態に依存したような気が
同時接続かクライアントにライセンス持たせるだかかな?
で、同時接続の場合に接続数増やした時はNTのライセンス管理でSQLServerのライセンス数も増やさないと
そんなエラーが出た気がします

ちょっと情報が少ないのでなんともいえないんですけど
書き込みの内容から勝手に推測
クライアントの接続エラーメッセージがSQLServerから何返ってくるか(もしくは返ってこない)によるんですが、
サーバ側の接続プロトコル指定の設定とか(名前付きパルプとかTCPとかね)
認証方法の設定とか(Win認証かSQLServer認証の依存とか)
あとは、ログが一杯になると接続エラー起こしましたね

もう解決していると良いんですが
449さんが書いてるように
切り分けして情報くれるともう少しわかるかも

451 :436:05/03/12 09:37:12 ID:???
>>439
何度も回答ありがとうございました。
かなり裏技っぽい手順で復旧できましたのでご報告まで。
前日のログまでで復元。サービスを停止して、mdfを削除、ldfを当日ので上書き。
サービス起動して、mdfなしの障害状態でログをバックアップ。
もう一度リストア、当日分のログを含めてリカバリ。

452 :NAME IS NULL:05/03/12 15:37:55 ID:???
439です。復旧できて何よりです。
手順が複雑で一見裏技っぽく思えるけど理に適ってますね。

453 :NAME IS NULL:05/03/12 18:40:40 ID:???
 名 前 付 き パ ル プ

454 :NAME IS NULL:05/03/14 20:33:48 ID:???
名 前 付 き バ イ ブ

455 :NAME IS NULL:05/03/15 01:23:13 ID:???
そのうち名前付きパイプの系統図っていうのが張られそうだ

456 :NAME IS NULL:05/03/15 16:22:54 ID:ECAwlR0e
初心者のうえに教えてちゃんで申し訳ありません。
サーバーが立ち上がらなくなり、OS再インストールを行う
ことになりました。
手元には保守計画で設定していたユーザーデータベースの
バックアップ「のみ」があります。
残念ながらmasterなどのバックアップはなく、壊れたマシンか
らファイルを助けることも出来ません。
この状態でOS再インストール後復元は可能でしょうか?
手元に物がなく、サーバーがある現地でいきあたりばったりで
復旧作業を行うことになってしまうので
何かアドバイスがあれば教えてください。

457 :NAME IS NULL:05/03/15 18:52:56 ID:???
>>456
バックアップ履歴が失われてるからディバイスからの復元になるのかな。
手動で順番にリストア、リカバリする必要があります。
あとアカウント情報も失われてますからsa以外アクセスできない
状態になってるはずです。

458 :456:05/03/16 09:07:56 ID:/jDXci8u
>>457
>アカウント情報も失われてますからsa以外アクセスできない
確かにそうですね。アドバイスありがとうございます。
では復旧に行って来ます!


459 :NAME IS NULL:05/03/16 11:07:39 ID:???
初歩的な質問で申し訳ないですがどなたかご教授くださいませ

既存DBの、名前を変えた複製を同一サーバ上に作りたいのですがどうすればよいでしょうか。
バックアップファイルを別名DBへ復元しようとしてみたのですがバックアップファイル中に物理ファイル名等
埋め込まれているのか元のDBへ上書きされてしまいます。

460 :NAME IS NULL:05/03/16 11:49:43 ID:cr/mDKY6
DTSのオブジェクトのコピータスク

461 :NAME IS NULL:05/03/16 12:25:02 ID:???
× 教授
○ 教示

462 :NAME IS NULL:05/03/16 14:51:34 ID:???
ushitakiうぜー

463 :459:05/03/16 16:35:06 ID:???
ありがとうございました。
無事複製を作ることができました。

464 :NAME IS NULL:05/03/16 18:07:50 ID:???
誤字当て字誤変換は2chの華。教え示すと教え授けるだからどっちでもいいよ。
口頭で話す場合は享受と紛らわしいから教示を使うことが多いが文章なら問題ない。

465 :NAME IS NULL:05/03/16 18:35:34 ID:???
m9(^Д^)プギャー

466 :NAME IS NULL:05/03/17 00:57:40 ID:???
>>457
Winodws認証を使ってればsp_grantloginだけで
sysusersはそのままでもアクセスできるようになるはず

467 :NAME IS NULL:05/03/17 01:22:10 ID:???
板違いだけど教授と教示では意味が違うよ。ベクトルは同じだけども。
俺も2chでなら問題ないと思うけど、他の場所では文語として用いるとしても使い分けたほうが無難。

468 :NAME IS NULL:05/03/17 01:44:31 ID:???
>>467
本気で教授でも問題ないって思ってる人なんているわけないじゃないか。

469 :NAME IS NULL:05/03/17 09:59:07 ID:???
漏れ思ってたyp!

470 :NAME IS NULL:05/03/17 13:31:00 ID:???
ログの多重化の仕方がわかりません。ログファイルの追加はしてみましたが
領域が追加されるだけで2重化ではないようです。
あとバックアップテープ装置を2つ付けてバックアップも2重にしたいのですが
可能でしょうか。どなたかご享受くださいませ。

471 :NAME IS NULL:05/03/17 14:54:50 ID:PRcU9wby
教授はあげれません。

472 :てんてんだいだい:05/03/17 15:10:04 ID:XPjKNNuo
こんにちは!
初心者なのですが、、教えてほしいのです、、
セキュリティをちゃんとしてなかったのでSQLServerにユーザー"sa"は 
ログインできませんでしたとなり正常に起動しません。
MSのホームページで英語で回避の文章があったのですが、、、
わかりません?TCP/IP1433をつなげなくするウィルスが蔓延しているのは
後で知りました。
こんな初心者に助け舟を出してください。お願いします。


473 :NAME IS NULL:05/03/17 15:52:21 ID:???
saが蹴られるだけなら、SQL Serverをインスコしたマシンのローカル管理者で入ってみたら?
入れたら原因を追及しる。

474 :てんてんだいだい:05/03/17 16:09:12 ID:XPjKNNuo
どうすれば、、、
いいですか?ご面倒ですが、、手順を教えてください。

475 :NAME IS NULL:05/03/17 17:01:46 ID:???
SQL Serverが動いてるサーバ機の前に座る。
ローカルのAdministratorsグループのメンバでWindowsにログイン。例: Administrator
EnterpriseManagerを起動する。
繋ぎたいサーバのアイコンを右クリックし[SQL Server 登録プロパティの編集]をクリック
[Windows 認証を使用]をチェックして[OK]をクリック

正常に繋がったら必要なデータをバックアップし、原因の特定を頑張るなり
ゼロから安全な環境を整え直すなり頑張る。

476 :NAME IS NULL:05/03/17 17:58:21 ID:WuWrTJGu
初心者で申し訳ありませんがおしえてください。
仕事場のパソコンでデータベースをVB.NETで作成していて
それを家で作業しようと思い仕事場で作成した、「Microsoft SQL Serve」−「MSSQL」-「data」フォルダの中の
***.mdfファイルを家パソコンの同じ場所にコピーしたのですが、「接続できませんですた。」とエラーメッセージがでてしまいます。
なにがおかしいのでしょうか?


477 :NAME IS NULL:05/03/17 19:01:02 ID:???
>>476
矜持しよう(笑)
家のパソコンにMSSQLServerはインストールしてますか?
mdfとmdlを持ってきてアタッチすればまずは動くはず。

478 :NAME IS NULL:05/03/17 19:44:43 ID:WuWrTJGu
>>477

mdfわすれてしまいました

ありがとうございました

479 :NAME IS NULL:05/03/17 21:13:41 ID:???
ldfだろ...

480 :& ◆R7PNoCmXUc :05/03/17 21:56:30 ID:???
あれ?デタッチはしなくてもいいんだっけ?

481 :NAME IS NULL:05/03/17 23:33:34 ID:???
というか、>476がアタッチの意味を理解してない希ガス

482 :NAME IS NULL:05/03/18 02:55:18 ID:???
その次はアタッチしたDBにアクセスできないというお約束が待ち受けてるわけだ

483 :NAME IS NULL:05/03/18 08:31:35 ID:???
サービスをとめた状態でコピーしたものはアタッチできたと思うが、ちと自信がない。

484 :NAME IS NULL:05/03/19 14:03:05 ID:79P+2FsJ
教えて下さい。よろしくお願いします。
MSDE2000+ACCESS2000です。
開発マシンでのテストでは全く問題ないのですが
別のマシンで同じプログラム(ADE)を配布して
動作させると、パラメータ付きストアドをソースにした
レポートの内容が全て”#Name?”のエラーとなります。
各クライアントで再コンパイルなどの必要があるのですか?

尚OS,AccessおよびMDACのバージョンは同じです。

485 :NAME IS NULL:05/03/19 17:38:20 ID:???
>>484
SQL SERVERの問題じゃなくてACCESSの問題じゃない?
例えば、参照設定がおかしくて配布先に存在しないActiveXオブジェクトを呼び出そうとしてるとか。

486 :484:05/03/20 00:25:36 ID:4DI2tNZZ
>>485
ありがとうございます。
よ〜く考えるとMS-SQLのクライアント接続ツールを
何にもインストールしていませんでした。
レポート以外ADO接続だったので、気付きませんでした。

487 :NAME IS NULL:2005/03/30(水) 09:36:35 ID:ugiFChJB
Windows2003Server にMSSQLServer2000をいれて WindowsNTから
Windows認証のODBC経由でアクセスしようとするのですが
失敗指定してしまいます。 ユーザはちゃんと作成し、NTから2003の
共有フォルダ等はみえるのですが。
NTから2003への場合何か問題があるのでしょうか?


488 :NAME IS NULL:2005/03/30(水) 10:28:09 ID:gIuAaJ+k
>>487
他の端末からは接続できるんですか?

489 :NAME IS NULL:2005/03/30(水) 10:43:05 ID:???
>>487
そのNTには SQL Server 2000 対応のMDACがインスコされてる?
MDAC 2.6 以上のバージョンがインスコされてないと繋がらないよ。

490 :487:2005/03/30(水) 10:47:12 ID:ugiFChJB
その他のWindows2000などからは接続できます。
MDAC のバージョンですね。確認してみます。
ありがとうございました。  報告はノチほど。

491 :487:2005/03/30(水) 13:04:01 ID:ugiFChJB
MDACのバージョンあげたら接続できました。
お世話がせしました。 ありがとうございました
 

492 :NAME IS NULL:2005/03/30(水) 18:19:02 ID:???
IBM のホスト機 AS/400(iSeries Server) 上のデータベースを
SQL Server に同期させようとしています。

似たようなことをしていらっしゃる方がいれば
どのような手法を使っているのか参考に
お聞かせ頂けませんでしょうか。

(1) リンクサーバ(IBM製 iSeries OLE DB Provider)
  → 試してみましたが信じられないぐらいパフォーマンスが悪いです。

(2) レプリケーション( iSeries ODBC Driver )
  → Books Online によると異種サブスクライバへのレプリカは可能だが
    異種DBをパブリッシャとするプル・サブスクリプションは不可能?

(3) DTS ( ODBC 経由でホストDBを直叩き→ SQL Server へ変換)
  → リアルタイムでは同期できない。
    ホスト側のスキーマオブジェクトが多く,DB構造が結構頻繁に
   変わるので,そのたびにDTSパッケージを作り直すのが面倒。

(4) FTP転送してBCP
  →同上。更に中間ファイルと運用手間が増えそう。

ご助言いただきたくよろしくお願いします。


493 :NAME IS NULL:2005/03/30(水) 20:14:08 ID:???
>>492
DB2使ってるんなら
http://www.climb.co.jp/soft/hitsw/products/index.html#02
これでいけるんじゃないですかね。
評価版もあるみたいだし試してみては。

494 :NAME IS NULL:2005/03/31(木) 15:22:40 ID:8EjOxO2M
SQLServer2000の見積もりが取れるサイトってどこかあります?

495 :NAME IS NULL:2005/03/31(木) 15:36:51 ID:???
>>494
こういうこと?
ttp://www.kakaku.com/sku/price/371003.htm


496 :494:2005/03/31(木) 16:09:52 ID:8EjOxO2M
>>495
 これでOKです。

 価格.COM の存在忘れてました・・・

497 :492:皇紀2665/04/01(金) 18:01:16 ID:???
>>493
ありがとうございます。英語版しか無いようで
ちと敷居が高そうなのと予算的にも厳しいです…

できれば標準機能で実現したいのですが
難しいでしょうか。

498 :NAME IS NULL:皇紀2665/04/01(金) 21:59:19 ID:???
>>497
AS/400とMSSQLを両方使ってる人でないと答えられんから皆答えようが無いんじゃないですかね。
PASSJのメーリングリストとかで聞いてみてはどうでしょう。

499 :NAME IS NULL:2005/04/12(火) 18:25:38 ID:???
サーバーにあるデータを削除しようとしたんです。
とりあえず一括削除してもいいデータだったので

DELETE FROM [テーブル名]

と単純にSQL打ったのですが、タイムアウトしてしまい作業できません。
そこでWHERE で条件指定して範囲を狭めたのですが。。。それでも削除できません。
もっと条件を狭めてやっと削除できたのですが、削除する条件として
テーブル内データ量とDBにアクセスしている時間の関係を知りたいので
分かる方いたら教えてください。

ちなみに削除しようとしたテーブルの件数は9万件位ありました。

500 :NAME IS NULL:2005/04/12(火) 19:44:08 ID:???
>>499
データ量がこれだけあるから、アクセスするのに何分かかる、ってのは
一概には言えない。サーバーの性能にもよるし。
SQLは、どこから投げたの?
クエリアナライザなら、オプション設定でクエリタイムアウトの指定ができる。
デフォルトではタイムアウトしないはず。
VB とかで、ADO 経由で投げたのなら、ADO の CommandTimeout で
クエリタイムアウトの指定ができる。

ところで、一括削除なら、TRUNCATE TABLE [テーブル名] を使えば
あっという間に終わるけど。DELETE を使う(使わなければならない)理由が
あるの?


501 :NAME IS NULL:2005/04/12(火) 20:17:27 ID:???
>>499
トリガか外部キーが設定されてるんじゃないの?
結局は場合によりけりだけど、9万件の整合性チェックはそれなりに重いだろう

>>500
外部キーが設定されてるとTRUNCATE不可。

502 :499:2005/04/12(火) 21:15:37 ID:???
>>500
>>501
エンタープライズマネージャーでテーブルの中身確認しながら直にSQL打ってた。
本来、HOSTで作成されたマスターをFTPで受け渡ししてたもので
一ヶ月分だけSQLサーバーに持つようにしてたらしい。
そのデータは取引先の検収明細。Webで取引先が取得する様にしてる。
だから自分もテーブルの中身は当月分の内容だけだと思ってた。
ところが先月、月次締め処理の段階で500件以上行かなくなって「?」と思い
調べたら2002年からずっと累積されてて、さらにLOGもアフォみたいに
溜まってた。
どうせ当月分転送したのだけあればいいだけだからサーバー内の検収データを
一括で消そうと思ったのですよ。
削除で頭いっぱいになっちゃったんで外部キーも見てなかった。。
あとでER図と一緒にテーブルの設定みてみます。
まだそんなにSQL詳しくないから、担当らしい担当もいないので自分が
手を出すしかなくて。普段オレcobolerだし(w 
かえって人の意見聞くことで自分の勉強になるからいいんだけど。
意見参考になりました。ありがとうです。
ちなみにサーバーはOS:NTでメモリ1G積んでます。

503 :helihop:2005/04/13(水) 02:18:57 ID:xoCSgt7x
MS SQL Serverのバックアップで、、
負荷が非常に高くなるときの対処方法は、あるのでしょうか?

もちろん、Serverの負荷になる処理をやめるのでしょうが
一般的には、外部バックアップソフトを利用するなど
どのような方法が、効果的?一般的なのでしょうか?

また、経験的に
このような方法で、データベースのバックアップ負荷が
サーバの負荷になりにくいように対策があれば
教えてください。

宜しくお願いします。

504 :NAME IS NULL:2005/04/13(水) 09:25:33 ID:???
クエリアナライザでパスワードが不明でログインできません。
もろもろの事情で設定書等も見当たらなくて困ってます。
クエリアナライザにログインするパスワードを調べる方法はないですか?

505 :NAME IS NULL:2005/04/13(水) 09:48:28 ID:???
>>502
truncate table はログ吐かないから(だから一瞬なんですけど)
バックアップ取ってからのほうがいいですよ
ログも一杯みたいだし、保険ってことで

>>503
データ量やシステムの規模、運用によって対処方法が違うと思います
その辺り詳しく

>>504
サーバ行って直接adminで入って
パスワードを新しく替えるしか無いのでは?



506 :499:2005/04/13(水) 10:19:18 ID:???
>>505
もちろんバックアップとってからDELETE実行しました。
で、みんなの意見聞いていろいろ調べたら
TRUNCATE TABLE はロールバックできないみたいなので
後で必要なところが出てくる場合はDELETEで実行のほうがよさそうですね。
ただ今回の自分の場合は確実に入らないものだったので。
みなさん、ご意見ありがとうです。(*^-^)ノ

507 :499:2005/04/13(水) 10:23:54 ID:???
ちなみに自分が行った外部研修ではTRUNCATE TABLEはなかった。
研修テキストにも入ってなかった。
ググった結果とSQL参考文献を書店立ち読み(セコイナ...オレ)で調べました。
なんにしてもみんなのヒントのおかげです。

508 :NAME IS NULL:2005/04/13(水) 10:52:29 ID:???
データベースを新規作成する時に決める、
データベース名、ファイル名、場所に関してですが、
このうちファイル名というのはどこかで使われるのでしょうか?

例えばデータベース名 exdb として、ファイル名 aaaa, 場所
ccc_Data のように、設定できると思います。このファイル名が何を
あらわしているのかがわかりません。

どうしてこんな質問をしているかというと、存在するデータベースEXDB1 を
バックアップしてデータベースEXDB2 としてリストアした場合、
EXDB2 の物理ファイル名は EXDB2_Data とできるのですが
ファイル名に該当する部分が EXDB1 のままです。このままでも
問題ないのか、もしくはファイル名を EXDB2 に変更したいのですが
その変更の方法がわかりません。

よろしくお願いします。

509 :NAME IS NULL:2005/04/13(水) 11:13:00 ID:???
>>508
別にファイル名はなんでも良いので、そのままでも問題ないけど。
変更したければ、以下の手順かなぁ。
1) クエリアナライザ or osql で
  use msdb
  go
  sp_detach_db EXDB2
2) エクスプローラ等で、データベースファイル名、ログファイル名を変更
3) クエリアナライザ or osql で
  use msdb
  go
  sp_attach_db EXDB2, '新しいデータベースファイル名', '新しいログファイル名'

  新しいファイル名は、フルパスで指定すること。

510 :NAME IS NULL:2005/04/13(水) 11:15:56 ID:???
>>507
> ちなみに自分が行った外部研修ではTRUNCATE TABLEはなかった。
> 研修テキストにも入ってなかった。

正規のSQLと違って
SqlServerの管理用のコマンドみたいなものだから
やらなかったんじゃないですかね〜

>>508
> データベースを新規作成する時に決める、
> データベース名、ファイル名、場所に関してですが、
> このうちファイル名というのはどこかで使われるのでしょうか?

場所はディレクトリ、ファイル名は物理ファイル名
つまり場所+ファイル名=ファイルのフルパス
(データファイルとログファイルの拡張子とかはとりあえず別として)

さっき試したけど君の書いている例の状態にならないんだが、
SQLServerのバージョンと細かいプロセスがわかる?
あとついでなんで、sp_helpfileとsp_helpdeviceの結果も答えられる範囲でよいので

でもそのままでなんか問題があるのか??

511 :NAME IS NULL:2005/04/13(水) 11:18:51 ID:mOYD1W1W
>>509
あ、それで出来ちゃうんだ
しらなんだ

512 :504:2005/04/13(水) 11:21:48 ID:???
>>505
お世話様です。Administratorでやってみます。


513 :http:// pool-68-161-26-103.ny325.east.verizon.net/~ss.jpg:2005/04/13(水) 11:24:53 ID:???
ええけつしとるのぉ(*´Д`)ハァハァ



うはっwwwおkwww??


514 :499:2005/04/13(水) 12:17:00 ID:???
>>510
管理用?そうなの??
うーん、この辺りもう一度学習し直すか。。。日々精進。。。。
あと削除関連ではDROPなんてコマンドもありますね。

ちなみに昨日の削除した検収テーブルは外部keyもってました。
そうだ、削除しまくってたからまたLOGが溜まっているはずだ。
切り離し作業せねば。。。

515 :NAME IS NULL:2005/04/13(水) 13:17:30 ID:???
>>514
君は触らないほうが良いよ
基本的なことだけで良いからRDBMSとSQLを学習してからのほうが廻りも君も幸せになれるよ。
今のままだと廻りも君も不幸になるのは確実だね

516 :499:2005/04/13(水) 13:37:00 ID:???
>>515
君になんと言われようがやる人間いないのでね。
だから勉強してるんだよ。
それとここは幸福論や精神論語るスレじゃないから。

517 :NAME IS NULL:2005/04/13(水) 14:02:27 ID:???
>>514
dropじゃテーブル消えちまうよ
ログも残らない
制約取ってからデータ消すと
あとで制約貼りなおしたときに不整合起こす危険があるから気をつけて


518 :499:2005/04/13(水) 14:52:18 ID:???
いや削除の中には「DROP]というのもあるんだね、
という意味で書いただけだったんだけど。
どの道、ロールバックできるのはDELETEだけだし。
今回は特殊な場合だったから。

兎にも角にも皆さんお世話様でした。意見指摘大事にします。
ありがとうでした。

519 :NAME IS NULL:2005/04/13(水) 16:08:39 ID:rPnRjdLp
2台のFailoverクラスタ上でSQL2000を動かしています。
Failover中はSQLのサービスが止まってしまいますが、それまで接続していたユーザの
トランザクションは再開した後どうなるのでしょうか?

520 :NAME IS NULL:2005/04/13(水) 18:14:30 ID:???
>>519
切れてロールバックされている。アプリケーションで再接続と再処理が必要。

521 :519:2005/04/13(水) 19:17:15 ID:dWJHcVGm
>>520
あぁ、やはりそうですか。ありがとうございました。


522 :NAME IS NULL:2005/04/13(水) 21:29:53 ID:???
>>507
まずBooksOnlineで調べような

523 :NAME IS NULL:2005/04/14(木) 10:50:29 ID:QCGB6IU8
SQLServer の1ライセンスっていくら?

524 :NAME IS NULL:2005/04/14(木) 11:09:44 ID:???
>>523
バージョンとエディションによって違う
あと、クライアントライセンスなのかプロセッサなのかとかもあります
結構変動もあります
とりあえず、SQLServer2000のパッケージ市場価格を見たかったら
価格.comで見れるよ

525 :NAME IS NULL:2005/04/14(木) 14:38:31 ID:???
テーブル名の先頭が #, ## ではじまるワークテーブルを作る際に、
フィールドの型にユーザー定義データ型を使う事ができないのですが、
これは何かの方法で使えるようになりますか?

現在 UDT_Code というユーザー定義データ型がある時、
##_workTable_ とうテーブルのフィールドに UDT_Code のように
データ型を設定できずに途方にくれています。

アドバイスのほどよろしくお願いします。

526 :kazu:2005/04/14(木) 15:40:27 ID:vPYBDT4I
教えてください。

ASP上でODBCを利用して、MSSQLsvrに接続したいのですが出来ません。
命令文の例などありましたら、教えてください。

527 :NAME IS NULL:2005/04/14(木) 16:06:10 ID:2CK0JihX
>>526
ASPってActiveServerPageのこと?

528 :kazu:2005/04/14(木) 16:09:52 ID:vPYBDT4I
>>527
ASPってActiveServerPageのことです。

529 :NAME IS NULL:2005/04/14(木) 16:12:39 ID:2CK0JihX
>>528
ttp://www.geocities.co.jp/SiliconValley/1716/SQL.html

ここに丁寧に書いてるから参考にしたまえ

ちなみにその前にODBCからSQLServerに繋がっていることを確認すること

530 :NAME IS NULL:2005/04/14(木) 17:16:00 ID:???
なんでage進行なんだ

531 :kazu:2005/04/14(木) 17:35:06 ID:vPYBDT4I
>>529
OKです。出来ました。ありがとうございます。

532 :NAME IS NULL:2005/04/14(木) 19:47:38 ID:???
>>525
tempdbにも同じユーザー定義データ型を作成しておく。

533 :NAME IS NULL:2005/04/18(月) 11:48:08 ID:???
SQL Server 2000で暗黙の型変換をできなくするような設定ってできますか?
Select * FROM テーブル Where Charのカラム=1234
みたいなクォーテーションマーク無しだとエラーで落ちるような…
ご存知の方いらっしゃいましたら、お願いします。

534 :NAME IS NULL:2005/04/18(月) 12:09:50 ID:7653fSPw
テーブルのデザインで「説明」欄に説明書いても、
SQLスクリプト生成で、説明がコメントで出力されないけど、
これは仕方がないのでしょうか

535 :NAME IS NULL:2005/04/18(月) 13:05:33 ID:???
>>534
SQL拡張プロパティーも出力する、みたいなオプションチェックした?

536 :NAME IS NULL:2005/04/18(月) 14:13:47 ID:???
>535 デキマシタ。アリガトウ!

537 :SQL厨:2005/04/18(月) 16:21:29 ID:???
厨な質問になっちゃうんですが誰か助けてくれないでしょうか。。。

Sql2000で構成されているパッケージソフトを立上中なんス。
で、レプリカしろーって言われて調べたんですが、
そのパッケージはBinaryありのnvarchar 8000桁ってのもありで、
リアルにレプリケーションできないって言われちゃったんス。
実現できる手立ては無いでしょうか。。。。
もう他の案件もありで、2徹の状態で死にそうなのでどなたかご教授下さい。。。


538 :NAME IS NULL:2005/04/20(水) 15:02:32 ID:???
ユーザーの追加に関して質問です。
あるデータベース (EMDB) に全権限を持たせたユーザーを作りたいと
思っています。権限はデータベースロール内の権限で db_owner を与えれば
よいのかと思っています。

そこで、EnterpriseManager の該当データベースを開き、
ユーザーの部分から新規データベースユーザーで、
ログイン名を新規を選択し SQL Server ログインのプロパティという画面で
名前 を入力し、SQL Server 認証を選択しパスワードを入力。次に、
データベースユーザーのプロパティのログイン名で、作ったユーザー名を
選択し db_owner にチェックして OK すると
エラー 15023: ユーザーまたはロール "user_name' は現在のデータベースに
既に存在します。

となりユーザーの作成ができません。何がいけないのでしょうか?

よろしくお願いします。

539 :NAME IS NULL:2005/04/20(水) 17:32:11 ID:???
>>538
クエリアナライザで
use EMDB
go
sp_dropuser ユーザー名
go

とやってから、EnterpriseManager でユーザーを追加すれ。


540 :NAME IS NULL:2005/04/22(金) 16:26:55 ID:VBHxbopk
トランザクションログを見ることってできないんですか?

541 :NAME IS NULL:2005/04/22(金) 18:31:24 ID:???
普通は見れない気がする。
Transaction Log Explorerみたいな名前(うろおぼえ)の海外シェアウェアが有れば
ログの閲覧とか好きな所からコミットとかロールバックとか出来たと思う。


542 :NAME IS NULL:2005/04/23(土) 02:57:38 ID:???
右も左も分からない状態で SQL Server 関連を勉強したい場合、どちらのwebページが参考になりますでしょうか?
OSは、MS Windows NT4.0 server SP6a と、Option Pack です。


543 :NAME IS NULL:2005/04/23(土) 03:42:36 ID:???
>>542
まず右を見て左を見てから渡ったほうが危険は少ない

丁寧だと思ったのはここ
http://www.sqlpassj.org/

544 :NAME IS NULL:2005/04/23(土) 04:12:40 ID:???
>>543
素早いアドバイスありがとうございます。
早速見てみます。
知識ゼロなので、かなり時間がかかりそうですが・・・

545 :NAME IS NULL:2005/04/23(土) 07:40:49 ID:???
>>544
じゃあ、セミナー(パソコン講習)行ったら?
2日〜5日ぐらいでMSSQLの基礎操作とか基本用語は身に付くと思うよ。


546 :NAME IS NULL:2005/04/23(土) 09:09:30 ID:???
>>542
ここに目を通した後
http://www.atmarkit.co.jp/fwin2k/tutor/sql01/sql01_01.html
ここの管理編、開発編と
http://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp
ここを
http://www.microsoft.com/japan/sql/techinfo/video/
読んだらいいYO

>>543が紹介してるPASSJのメールマガジンも役立つ。

547 :542:2005/04/23(土) 15:49:17 ID:???
>>543,545-546
みなさん、色々とありがとうございます。
タイトルだけ見ても、期待できそうな内容ですね。
がんばります!


548 :NAME IS NULL:2005/04/23(土) 21:40:57 ID:???
>>542
>OSは、MS Windows NT4.0 server SP6a と、Option Pack です。
先ずは環境を見直すべきでは。


549 :542:2005/04/23(土) 21:52:25 ID:???
>>548
何か問題がありますか?
今はまだ何も知らない状態なので、手元にある環境で勉強してからステップアップしようと思ったのですが・・・


550 :NAME IS NULL:2005/04/24(日) 01:34:13 ID:???
>>549
今使ってるWinXPマシンで良いじゃん、と思った。

まぁ、NTの方が早いのかな。。。

551 :NAME IS NULL:2005/04/24(日) 19:14:46 ID:???
>550
xpだとdevエディション、evaluationエディション、msdeしか入らんぞ
俺は別にNT4でもいいと思うが。

552 :NAME IS NULL:2005/04/24(日) 22:03:23 ID:???
納品するシステムがNT4だったらまずいと思うが
勉強用なら別にいいんでないの。

553 :542:2005/04/24(日) 22:27:11 ID:???
お騒がせしているようですが、あくまで「初めてのSQL」なので・・・
もちろん勉強のためにです。


554 :NAME IS NULL:2005/04/29(金) 12:59:53 ID:???
SQL Server 2005 April CTP 日本語版
http://www.microsoft.com/japan/sql/2005/evaluation/productinfo/default.mspx

555 :NAME IS NULL:2005/05/02(月) 15:20:29 ID:+9d4CVhY
どなたか経験があったり、問題分析のヒントを頂けたらと思います。。

不要なデータをいくつかのテーブルから大量に削除しました。
データボリュームは、全体で以前の7割くらいになりましたが、
それらのテーブルを検索しまくっているプログラムの実行速度が
10倍くらいになってしまいました。
トレースをみると、OPENでかなり時間がかかっています。
もちろん、統計情報は更新しています。
sp recompile とか、indexの削除、再生成など考えていますが、
効果があるかどうか、あるいは他にどんな原因が考えられるでしょうか?
リリースは7.0です。
途方にくれております・・・
どなたか助言頂けると非常に嬉しいです。よろしくお願い致します。

556 :NAME IS NULL:2005/05/02(月) 15:35:43 ID:???
>>555
とりあえずDBCC系のコマンドをたたいてみたらどうでしょう。
DBCC DBREINDEX
DBCC SHRINKDATABASE
DBCC CHECKDB

557 :NAME IS NULL:2005/05/04(水) 10:58:55 ID:UY2LHSrM
>>556 ありがとうございます。やってみます。
OPENで時間がかかるようになってしまったことについては
どのような可能性が考えられるのでしょうか?

558 :NAME IS NULL:2005/05/04(水) 12:24:59 ID:???
だめもとでsp_recompileすれば? 大して時間がかかるものでもないでしょ。

559 :NAME IS NULL:2005/05/04(水) 20:45:05 ID:6TJ1D5OL
>>558
ありがとうございます。なんだかんだ言わず、トライしてみます。

560 :NAME IS NULL:2005/05/05(木) 23:43:16 ID:???
SQL Server 2000 WorkgroupEditionが発売されたわけだが、EnterpriseManagerは付くのだろうか?

561 :NAME IS NULL:2005/05/07(土) 04:24:49 ID:???
SQLServer2000 SP4
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5&DisplayLang=ja

562 :NAME IS NULL:2005/05/07(土) 17:09:09 ID:???
例えば、金額を文字列として捉えて、

select * from table where amount like '%345%';

って書くと、amount は、int32 なので like 使えないと出るんですが。
でも、金額で 345 を含むものを探したい場合ってどうすりゃいいんですか?

Access だと出来たんですが、 SQL サーバーではできないんですか?


563 :NAME IS NULL:2005/05/07(土) 17:11:34 ID:???
>>562
何でそんなバカ事がしたいのか、自分の間抜けさをかみしめながら400字以内でまとめよ。

564 :562:2005/05/07(土) 17:22:41 ID:???
>>563
金額は、あくまでも例だよ。質問の中身を伝えやすいだろ。
現に、マヌ〜な君にも理解できてるじゃないか。
で、どうすりゃいいんだか誰か教えてくれまいか?
こうみえても真面目に悩んでるんだぞ。


565 :NAME IS NULL:2005/05/07(土) 17:24:46 ID:???
>>562
int32ってbigintのことを言ってるのかな?
うちでは問題なくbigintカラムでlikeは使えたけど(SQLServer2000)
ウダウダ悩むんなら、文字型に変換してやったほうが手っ取り早いかも
select * from table where convert(varchar, amount) like '%345%';

566 :562:2005/05/07(土) 17:33:05 ID:???
>>565
そんな呪文があったんですね。
ちゃんと動きました。ありがとうノシ


567 :名無しさん@編集中:2005/05/08(日) 11:41:39 ID:VS8SSSEC
学生で、ACCESSとVB.net勉強してたのだけど、
次にやるとしたらSQLserverのほうがいいのでしょうか。
ORACLEのほうが、就職には使えそうですが。インターフェースが
ACCESSに慣れきってるので、MSのでとおもい、SQLserverが気になってます。


568 :NAME IS NULL:2005/05/08(日) 13:14:15 ID:???
SQLServerでもORACLEでもどっちでも良いんじゃないかな。
でも値段とか考えると安いしマネージャがうまくできてるから
SQLServerの方がお勧めかも。
あと、ORACLEならオラクルマスターを取るとか、
SQLServerならMCPを取るとかすると就職に有利かもね。

なんかすごいIDですね。

569 :NAME IS NULL:2005/05/08(日) 16:59:54 ID:???
>>567
実力つけたいならインターフェイスがどうこうじゃなく、
DBMS自体とかDB設計とかの知識をつけた方がいい。
Oracle使おうとSQLServer使おうと、テーブル設計がクソ
なら意味無い。

570 :名無しさん@編集中:2005/05/08(日) 22:44:49 ID:VS8SSSEC
>568 そうですかやはりSQLserverのほうがいいですかね。
ORACLEのテキストみてたら敷居が高いように感じたものですから。
>569 そうですね、ACCESSつかっててつじつまあわせにVBAとか
つかっててそれで出来たと思い込んでた節があります。
本腰入れて勉強したいとおもってました。

571 :名無しさん@編集中:2005/05/08(日) 22:45:36 ID:VS8SSSEC
ID確かにすごいですねw

572 :NAME IS NULL:2005/05/09(月) 01:22:13 ID:???
IDに惹かれ、記念カキコ。w

今の時期は、いろんなものの入り口だけを知ってるよりも、
一つのものを深くやってたほうがいいよ。
言語特有のものって、すぐに使えなくなるけど
根本にある理論や技術は長く使えるからね。

573 :NAME IS NULL:2005/05/09(月) 06:12:37 ID:???
全くの私見だが勉強するなら Oracle
実務で使うなら SQL Server だな。

PostgreSQL や DB2 なども使ったが
SQL Server は便利すぎるというか簡単すぎるというか、
肝心なところや DBMS のコアを
あまり意識しなくても動いてしまうから。


574 :NAME IS NULL:2005/05/09(月) 13:23:43 ID:Kwb0grtZ
Microsoft SQL Server 2000 Service Pack 4
http://www.microsoft.com/japan/sql/downloads/2000/sp4.mspx

575 :NAME IS NULL:2005/05/09(月) 15:59:21 ID:???
Oracleは方言がきついからSQLというかプログラミングまわりを勉強したいなら
MSSQLやPostgreSQLがおすすめ。運用まわりならOracleが機能が多いからいろいろ
勉強になると思う。
あと最低必要なリソースが段違いだからデータベース専用のPCを準備できないなら
Oracleはやめといたほうがいい。

576 :NAME IS NULL:2005/05/10(火) 02:41:30 ID:???
勉強ならSQLServerのサブセットのMSDEがいいかと

577 :NAME IS NULL:2005/05/10(火) 07:58:29 ID:???
GUIが無いから嫌でも
SQLのみで操作しないといけない。
もしくはDMOツール自作するかAccessADPか

578 :NAME IS NULL:2005/05/10(火) 19:51:40 ID:QueOigCD
今度会社の仕事でACCESSを使ってSQL SERVERのデータを参照・更新する
アプリケーションを開発する様に言われました。
アクセス方法としてはADODBを使ってVBAで組む予定になっています。
VBで作るよりACCESSで作る方が楽でしょうか?
ご意見よろしくお願いします。

一応いろんなサイトで現在調査しておりますがいまいちわからないのです。

579 :NAME IS NULL:2005/05/10(火) 20:05:06 ID:???
使い方と規模によるかなぁ。
VBの方が完成度は高くできるけど、Accessの方が楽。

580 :NAME IS NULL:2005/05/10(火) 22:02:25 ID:???
>>576
けどインストールでくじけるやつが多いんじゃないのかな。
何でインストールとかSP4のパッチ当てとかで、あんなにパラメータつけなまともに動かないんだ?

581 :NAME IS NULL:2005/05/10(火) 22:03:40 ID:???
>>578
配布とかバージョンアップとか互換性とかごちゃごちゃ考えずに単に作る事だけ考えたら、Accessの方が楽。
標準でローカルにテーブル持てるからね。


582 :NAME IS NULL:2005/05/10(火) 23:45:28 ID:???
各種ウィザードで連結フォームがすぐに作れる事や、
テーブルの中身をコンボボックスやリストボックスへ
表示させる時の労力の違いを体感したら、Accessのほうが早い
事が分かります。
ただし、互換性に非常に弱いので配布には向かないです。
Access2003で2000形式ファイルで作ってても、
Access2000しかない環境では動かないとかざら。

583 :NAME IS NULL:2005/05/10(火) 23:50:06 ID:???
Oracleを知ってるほうがお金持ちのお客さんに近づける。
ちょっと大きな案件なら、予算に占めるライセンス料なんて誤差。
DBMSのライセンス料がはらえないような案件なら、人件費(ry


584 :NAME IS NULL:2005/05/10(火) 23:59:32 ID:ytz9U72j
\

585 :NAME IS NULL:2005/05/11(水) 10:52:27 ID:sgL0IKtH
>>578です。
 いろんなご意見ありがとうございます。
 あまり詳しくは無いのですが、皆様がご指摘のように将来的な
 拡張性等を考えるとVBで、開発コストを下げるならACCESSだと
 思っています。(開発コストと言ってもACCESSの使い方に詳しくないと
 あまり効果が内容に思うのですけどね。(^^;)

 基本的にACCESSの使い方としてはマンマシンインターフェースとして
 のみ使う予定となっておりローカルのACCESSにSQL SERVERのデータを
 インポートしたりとかは現在考えて無い様です。
 あくまでもSQL SERVERのデータを参照したり更新したりコントロール
 したりします。

 それで、ACCESSで可能(使えない事はない)という事なので開発
 ツールとして使うとして、LAN上に存在するSQL SEVERへアクセス
 するのであればやはりADOのオブジェクトを使った方が良いでしょうか?
 それともRDOのオブジェクトを使ってアクセスする方が良いのでしょうか?
 どちらも可能だと思うのですが、どちらが楽とか柔軟性があるとか
 あまりわかっていません。(;^_^A アセアセ…
 またご意見・ご指摘よろしくお願いします。m(_ _)m

586 :NAME IS NULL:2005/05/11(水) 12:03:22 ID:???
>>585
ADOオブジェクトを選ぶべきだと思うよ。
ADOを扱うスキルがあるのならRDOを選択する理由は無いはず。

Jetへの操作が絡んでくるのならDAOで統一するのが
生産性の観点からはいいと思うけどね。

可能ならADP+SQL SERVERで生産性を最大化できると思う。

587 :NAME IS NULL:2005/05/11(水) 13:19:50 ID:sgL0IKtH
>>578です。
>>586 さん、早速のご意見ありがd。
データベースにあまり詳しくない(ACCESSも)のですが、一応指示された
ので調べている所です。
やはりADOを使わない理由は無いのですね。(^^ゞ
当方としては現在ACCESSのプロジェクト(ADP)でクライアント端末の
マンマシンインターフェースを作成してSQL SERVERを扱いたいと
思っていました。
ご意見から察すると、後はADOでアクセスする部分をVBAで作りこんで
いけば何とかなるのかなぁ〜と。
ADOでDBをアクセスする手法などを紹介したサイト等取りあえず調べて
みます。
MSDNライブラリみてもいまいちわかり難いので。
また、何かあればお知恵を拝借させて下さい。
本当にありがとうございました。


588 :NAME IS NULL:2005/05/11(水) 18:03:23 ID:???
>>587
http://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp
ここの 「開発編 1.SQL Server 2000 と Access 2000 によるアプリケーション開発 」が
有益だと思う。

589 :NAME IS NULL:2005/05/11(水) 20:43:32 ID:UfuMIuL4
pubs,Northwindのデータベースを使って
学習できるWebサイト等ありませんか?

590 :NAME IS NULL:2005/05/11(水) 21:30:24 ID:???
MYSQLで、ドリームウィバーのように、コードビューをしてくれる
エディタというのはあるのでしょうか?


591 :NAME IS NULL:2005/05/11(水) 21:57:09 ID:???
まずはスレタイをよく読む事からはじめようぜ、な。

592 :NAME IS NULL:2005/05/12(木) 11:38:44 ID:7g1jdXeS
クエリの実行時間を計りたいのですが、キャッシュが効いているためか
2回目以降は一瞬で終わってしまい、計ることができません。
キャッシュを消すにはどうすればいいですか。


593 :NAME IS NULL:2005/05/12(木) 12:22:23 ID:???
>>592
このうちのどれか。

SQL SERVERの再起動
キャッシュのクリア。

DBCC DROPCLEANBUFFERS
キャッシュのクリア。

DBCC FREEPROCCACHE
アドホックSQLが再コンパイルされる。

594 :NAME IS NULL:2005/05/12(木) 23:13:04 ID:heqYYx/K
>>578です。

>>588 さん、有用な情報感謝です。m(_ _)m
まずは、教えて頂いたサイトの情報を読んでみようと思います。
さすがMSですね。(^^ゞ
読み応えありそうです。(^◇^;)

595 :NAME IS NULL:2005/05/14(土) 13:59:49 ID:???
SQL SERVERをVS.NETのサーバーエクスプローラから見ると、「テーブル」、「ビュー」、「ストアードプロシジャー」しか見えない。
「データベース ダイアグラム」と「関数」が表示されないのは仕様ですか?

596 :NAME IS NULL:2005/05/14(土) 15:35:02 ID:???
>>595
Enterprise Developer + SQL Server 2000 だけどダイアグラムも関数も表示されるよ。

597 :NAME IS NULL:2005/05/14(土) 16:51:14 ID:???
news:microsoft.public.jp.sqlserver に投稿された関数ってどうよ。

598 :NAME IS NULL:2005/05/14(土) 17:34:47 ID:???
MS SQL Serverを学ぶのに適した方法ってないですかね??

599 :NAME IS NULL:2005/05/14(土) 20:51:26 ID:???
>>596

595です。
SQL Server 2000 Developer Edition SP3を使ってますが、だめです。
ちなみに MSDE2000A と共存していて、そちらは、ちゃんと表示されます。

600 :NAME IS NULL:2005/05/14(土) 21:26:58 ID:???
>>599
Visual StudioがProfessionalなのでは?
http://www.microsoft.com/japan/msdn/vstudio/productinfo/featurelist.asp

601 :NAME IS NULL:2005/05/14(土) 22:26:44 ID:???
>>600
サンクス。

アカデミックでした。納得。



602 :NAME IS NULL:2005/05/16(月) 10:52:20 ID:???
>>598
>>588

603 :NAME IS NULL:2005/05/16(月) 11:50:02 ID:WkhxTlDr
クエリアナライザに行番号を表示できなくて困ってるんですが...。。。
どなたかご存知?

604 :NAME IS NULL:2005/05/16(月) 11:57:47 ID:???
>>603
"クエリ"メニュー → "結果をグリッドに表示"

605 :NAME IS NULL:2005/05/16(月) 12:06:39 ID:WkhxTlDr
>>604
そうではなくてエディタ部分に表示したいんですが。

606 :NAME IS NULL:2005/05/16(月) 12:11:54 ID:???
>>605
そもそも無理なんじゃねえの?

607 :NAME IS NULL:2005/05/16(月) 12:50:01 ID:WkhxTlDr
>>606
無理っぽいですね.。。。...

608 :NAME IS NULL:2005/05/16(月) 14:03:37 ID:8OnHDbIV
[Server] WIN2000server + Mssql2000
[client] WinXpPro + Access2000

これまで2000+Access2000でサーバーに問題なくODBC接続できていましたが
WinXpのクライアントを導入したところ、最初の一回だけ接続でき、再度接続
しようとすると「SSPIコンテキストを作成できません」とエラーが出て接続
不可能に・・・・

再起動するとまた一回だけは接続できるのですが・・・

どなたかこの現象知りませんか?

609 :NAME IS NULL:2005/05/16(月) 14:52:17 ID:???
>>608
この辺じゃない?今現在は日本語訳が機械翻訳で読みにくい。
http://support.microsoft.com/kb/883714/en-us
http://support.microsoft.com/kb/843248/en-us

よく読んでWinXPにSP2を当てたりSQL ServerにSP4を当てたり
してみたら。

610 :NAME IS NULL:2005/05/17(火) 09:56:36 ID:r1XHDoS9
お願いします。

 いまSQLの課題に取組んでいるのですが、

 担当テーブル
 担当コード int 長さ 6
 部署コード int 長さ 2 

をVB6.0で帳票を作っているのですが帳票にだすと
本来、担当コード 0001 と 4桁でなるものが1、
   部署コード 02 2桁でなるものが2にとなります。 (下図参照)

 これをレイアウト通りにしたいのですが方法がわかりません。
 力不足かも知れませんがなにとぞご教授おねがいします。

テーブルレイアウト
______________________________  
│名称   │タイプ │長さ  │ 
===============================
│担当コード│int  │6   │
│部署コード│int  │2   │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
帳票レイアウト
________________________  
│担当コード│部署コード│
│======================|
│0001   │01 │
│0002 │02   │
│0003 │02   │
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
今 現在
________________________  
│担当コード│部署コード│
│======================|
│    1 │ 1│
│ 2 │ 2│
│ 3 │ 2│
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 

611 :NAME IS NULL:2005/05/17(火) 10:11:18 ID:???
VBの話ならスレ違いな気がするけど。
ヒント:データ型とフォーマット

612 :NAME IS NULL:2005/05/17(火) 10:36:10 ID:+IxTM017
ACCESSのプロジェクトファイルを作成する際(ウィザードの途中)に、SQL Serverで
に存在するDBとの接続設定するのに鯖名、Loggin ID、PasswordとDB名を入力して
[次(N)>>]ボタンを押下すると「オーバーフローしますた。」ってダイアログが
出ます。 (´ヘ`;)
それも必ず・・・ ヽ(`д´;)/  うおおおお!?
[キャンセル]してデータベースウィザードを中断して、自分でやると
接続ができる様なのですがSQL鯖で何か権限とか設定と変えてやらないと
ダメなんでしょうか?
ちなみに検証用にプログラム作って(ADODB使用)接続でき、また参照や更新・削除
ができる事を確認しております。


613 :NAME IS NULL:2005/05/17(火) 11:17:30 ID:???
>>610
select right('00000'+cast(担当コード as varchar),5) from 担当テーブル

614 :NAME IS NULL:2005/05/17(火) 11:34:34 ID:???
>>610
どの帳票ツールを使ってるか判らんが、たいていの帳票ツールなら
フォーマット指定できるはず。
出来ないんなら、SQLで取ってくるときにフォーマットすればよい。
ところで「課題」ってなんだ?
会社の研修課題なら、講師担当に素直に聞いた方がいいぞ。
講師とオマイの間でスキルの誤認があると後々、お互いに不幸だぞ。

615 :NAME IS NULL:2005/05/17(火) 11:36:38 ID:???
>>610
int型の長さっていうのは「4」バイトで固定だよ。32bitの符号付き整数だから。

帳票レイアウトで示されてるのが正しいコードの仕様なら、
頭に0が付いててもそのまま格納されるように文字列型(ncharとか)で列を設計する。
DBから値を取り出した後0で上位桁を埋めて初めて正しいコードが完成するのは変だわね。

帳票上の表現の問題でゼロパディングする必要があるのなら、>>613

616 :NAME IS NULL:2005/05/17(火) 13:33:18 ID:+IxTM017
612です。
取りあえずデータベースウィザードでSQLサーバーとの接続をしなければ
オーバーフローというダイアログは出ないので一旦キャンセルして
プロジェクトファイルを生成しました。
その後、接続設定をしてDBへの接続確認も終わらせて完了しました。

ここからの事をここで聞くのはどうかと思ったのですが、接続した
DBに対してACCESSの「デザインビューでテーブルを作成する」で
テーブルを作ろうとしたんですができません。
やはりSQLサーバーマネージャーもしくはクライアントマネージャーを
使ってでないと作成できないのでしょうか?
ACCESSでテーブルを作成しようとするとメッセージも何も出てこなくて
処理もされないのでどういう状態か理解できないのです。
誰かご教授下さい。

617 :NAME IS NULL:2005/05/17(火) 15:06:04 ID:???
>>616
MDACのバージョンを確認してみるとか?

618 :NAME IS NULL:2005/05/17(火) 15:18:34 ID:Ac4VR0RB
WINDOWS2003server でSQLServer7 って動きますか?
調べてみたところ、組み合わせをしている事例はあったけど、(SP4で)
「インストールできない」という報告は無かったのでできるのでしょうか。
事例というのも、あるソフトを動かすための環境一覧 みたいなものに
書いていたので実際動きましたという内容ではなかったです。

619 :NAME IS NULL:2005/05/17(火) 16:08:46 ID:+IxTM017
>>617
 >>616 です。
 早速の書き込みありがとうございます。
 プロジェクトファイルはADOでSQL Server上のDBへ接続しますので
 DAOは使いませんのでMDACのバージョンとか関係無いかと…。
 ※ごめんなさい。ADO接続の話が抜けてました。(;^_^A アセアセ…

 Access2000+SQL Server2000で、SQL Server2000の稼働しているPCは
 占有して使うなとの命令がでているので何とかクライアントのAccess2000
 上からテーブル作成等をしたいのです。
 権限上の問題ならそれを回避(設定)する為の時間くらいはサーバーPCを
 使わせて貰えるように言えるんですが…。
 やはりクライアント側のAccess2000の「デザインビューでテーブルを作成する」
 という機能を使ってできないものでしょうか?
 

620 :NAME IS NULL:2005/05/17(火) 16:30:31 ID:???
>>619
ADOだから、MDACのバージョンが関係する。
MDACをバージョンアップして確認してみるのが手っ取り早いと思う。
SQLを使えるなら、CREATE TABLE ほにゃらら〜というテキストファイルを
作成して isql で実行する方法もあるけど。
サーバー側で実行しても大して占有することはないっしょ。

621 :NAME IS NULL:2005/05/17(火) 17:07:31 ID:+IxTM017
>>620
 >>619 です。
 ありがとうございます。
 試してみようと思います。

 ちなみに占有とはサーバーPC端末そのものの事(他の人の開発PCなので)
 をさす意味でしてなかなか触らせて貰い得ないのです。

622 :NAME IS NULL:2005/05/17(火) 17:29:17 ID:+IxTM017
>>620
 >>619 です。
 インストールされているMDACバージョンをレジストリのDataAccessの
 FullInstallVerを調べたところ[2.81.1117.0]となってました。
 ※Versionも同様です。
 そして最新版を確認しようとMicrosoftのHPで探したところ
 Microsoft Data Access Components 2.8 (2.80.1022.3)が最新だと
 言う事になってました。(当方の方が配布されてるバージョンより新しい?)
 バージョンダウンはいろんな問題があるので、他に違う方法を試すしか
 なさそうです。
 やはりVBAでクリエイトして試しても良いのですが、当面作るテーブルは
 暫定版で都度仕様変更がおこればデザインを変えないといけないので
 できればAccess2000のデザインビューで何とかしたいのですが…。
 やっぱり無理でしょうか?
 

623 :NAME IS NULL:2005/05/18(水) 00:21:41 ID:3fJc73+4
>>610です
 なんとか、解決できそうです。ありがとうございました。

624 :NAME IS NULL:2005/05/18(水) 09:34:52 ID:???
>>622
今現在の最新版はこれな。2.81 SP1。XPにはインスコ出来ない。
http://www.microsoft.com/downloads/details.aspx?FamilyID=78cac895-efc2-4f8e-a9e0-3a1afbd5922e&DisplayLang=ja

元々2.81がインスコされてるってことは、OSはXPのSP2なのかね。
違うのなら最新版のMDACで上書きしてみるとか。

あとはAccess2000の再インスコを計画してみるとか。



625 :NAME IS NULL:2005/05/20(金) 22:32:16 ID:???
charやtextをbcp.exeで出力するとき
裏側では一旦unicodeにしてから元の文字コードに戻してるってみんな知ってた?
sqlsrv32.dllがそういう設計になってるんだけど。
それでもしすごく長い文字列があるテーブルをbcp outしようとして
文字コード変換の処理が二バイト文字の間で分断されると…

ヽ(`Д´)ノ S H I T !!


626 :NAME IS NULL:2005/05/21(土) 10:59:42 ID:???
何となく知ってた。bcp.exeに限らず内部処理はUnicodeだよね。

627 :NAME IS NULL:2005/05/21(土) 15:51:04 ID:???
なんでわざわざnvarcharとかUnicode用の型があるのだろう?

628 :NAME IS NULL:2005/05/21(土) 19:09:00 ID:???
ウニが好きだから!!

629 :NAME IS NULL:2005/05/21(土) 23:45:42 ID:???
sqlserversp4どう?

630 :NAME IS NULL:2005/05/23(月) 09:18:59 ID:OYf/q4jh
どうって言われても・・・

631 :NAME IS NULL:2005/05/23(月) 10:09:57 ID:???
ウニが嫌いって言う意味?

632 :NAME IS NULL:2005/05/23(月) 12:39:17 ID:5noSZim5
>>631
ウニ=【Uni】  code
と釣られてみた


633 :NAME IS NULL:2005/05/23(月) 14:56:55 ID:???
MSDE について質問です。

ライセンスの問題ですが、

Windows 2000 Server, Windows 2003 Server に MSDE を導入した場合、
その MSDE に接続するクライアントの CAL は必要ない。
(正し、5台を超える時のパフォーマンスは落ちる)

Windows 2000, Windows XP に MSDE を導入した場合、
その MSDE に他のクライアントから接続するのは OS のライセンス違反となる。

という理解で間違いないでしょうか?

MSDE を使う場合でも、複数のクライアントから接続するのであれば
OS が Server OS でないと、いけない、という事ですよね?

よろしくお願いします。

634 :NAME IS NULL:2005/05/23(月) 17:19:47 ID:???
>>633
誰か答えてくれるかもしれないけど、ライセンスについては直接MSに聞いたほうが良いよ。

635 :NAME IS NULL:2005/05/23(月) 21:06:04 ID:???
>>633
細かい事は調べてみないと分からないけど、だいたいそんな感じ。
サーバ用OSとそのCALを買えっていうのが回答。

636 :NAME IS NULL:2005/05/24(火) 09:46:53 ID:???
Reporting Services使ってる人いてますか?

これってタックシール(宛名ラベル)打ち出したり、
1ページ内に出力するレコード数制御したりできますか?

今、クリスタルレポート使用していてReporting Servicesに
乗換えを検討しているのですが、VS.NETがまともに動く
スペックのマシンがなく動作確認できず困っています。

クリスタルレポートではできるがReporting Servicesでは
できないことなどあれば教えてください。



637 :NAME IS NULL:2005/05/24(火) 10:50:49 ID:EsMZ3RTX
>>633
> MSDE について質問です。
>
> ライセンスの問題ですが、
>
> Windows 2000 Server, Windows 2003 Server に MSDE を導入した場合、
> その MSDE に接続するクライアントの CAL は必要ない。
> (正し、5台を超える時のパフォーマンスは落ちる)
>
> Windows 2000, Windows XP に MSDE を導入した場合、
> その MSDE に他のクライアントから接続するのは OS のライセンス違反となる。
>
> という理解で間違いないでしょうか?
>
> MSDE を使う場合でも、複数のクライアントから接続するのであれば
> OS が Server OS でないと、いけない、という事ですよね?
>
> よろしくお願いします。

マイクロソフトのページにうpされてましたので貼ります。

SQL Server と Microsoft SQL Server Desktop Engine (MSDE )との相互接続について
MSDE は、Microsoft Access 2000 や Office Developer Edition 2000、Visual StudioR 6.0 など、
様々なマイクロソフト製品で利用できるデータエンジンで、Microsoft SQL Server と 100 % 互換です。
MSDE は、これらの製品と連携して、あるいはスタンドアロンで用いることができ、その際 CAL は一切不要です。
また、次の環境では、SQL Server へ接続(直接または間接)するデバイスが 1 台もない場合に限り、
SQL Server CAL は必要ありません。

・クライアント デバイスから MSDE へ接続
・MSDE から MSDE へ接続
・MSDE から SQL Server Personal Edition へ接続

MSDE を使用して SQL Server のサービス (例えば、レプリケーション、データ変換サービス、
または異種分散クエリーのサービスなど) を利用する場合、MSDE を使用するデバイスには CAL が必要になります。

以上ですが、「OS」違反というのがピンときません。
XP/2KPro → XP/2KProのMSDE であればCAL不要と思うのですが・・・
もちろんOSのライセンスは必要ですが・・・

的外れでバカなことを言っていたらすみません。


638 :NAME IS NULL:2005/05/24(火) 11:03:38 ID:???
ServerOSじゃないとサーバーに使っちゃダメって事だす。

639 :NAME IS NULL:2005/05/24(火) 17:04:21 ID:???
Microsoft SQL Server 2005 Express Edition
Community Technology Preview April 2005
http://www.microsoft.com/downloads/details.aspx?FamilyID=97383299-e74b-4af8-90c7-fa0ca20a10c4&DisplayLang=ja
いわゆるMSDE2005βです。お勉強にどうぞ。

640 :NAME IS NULL:2005/05/24(火) 20:34:30 ID:???
>>638
> ServerOSじゃないとサーバーに使っちゃダメって事だす。
どこに書いてありますか? ライセンスに係るOSについての記述は見つかりません。

641 :NAME IS NULL:2005/05/24(火) 21:18:41 ID:???
>>637
なら、極端に 100台のXP/2KPro → XP/2KProのMSDE でOSのライセンス違反でしょ。

642 :NAME IS NULL:2005/05/24(火) 22:29:54 ID:???
>> ServerOSじゃないとサーバーに使っちゃダメって事だす。
>どこに書いてありますか? ライセンスに係るOSについての記述は見つかりません。

OSのEURAに書いてなかったかな?

あんまり参考にならないと思うけど似たようで似てない事例。
http://apache.jp/misc/windows.html


643 :NAME IS NULL:2005/05/24(火) 22:31:43 ID:???
>>640
OSのライセンスに書いてあるんじゃあるまいか?

644 :643:2005/05/24(火) 22:32:09 ID:???
負けた_| ̄|○

645 :NAME IS NULL:2005/05/24(火) 22:36:32 ID:???
ttp://www.horikawa.ne.jp/cgi-bin/showlog.cgi?kd=1&no=1196

これじゃない?

646 :642:2005/05/24(火) 23:15:01 ID:???
ああ、最初はapaheじゃなくてその記事探してたんだ、、、一時期あちこちで
話題になってたんで。

めもっとく。さんきゅー!

647 :NAME IS NULL:2005/05/25(水) 01:19:48 ID:???
SQLServer にはオラクルのSI Object Browser 9みたいな使いやすいオブジェクトブラウザはないんでしょうか?
付属のものはどうも使い勝手が悪いので。
シェアでもかまいません。何かお勧めがあればお願い致します。

648 :642:2005/05/25(水) 09:27:25 ID:???
エンタープライズマネージャーが使いにくいって事?

649 :NAME IS NULL:2005/05/25(水) 09:54:51 ID:???
>>646
あぱへ。(・∀・)イイネソレ!

650 :NAME IS NULL:2005/05/25(水) 10:37:39 ID:???
>>647
MSのは付属のがそこそこ使えるから外部のツールはあまり見かけない。
Oracleは付属のがアレだから外部のツールがないと仕事にならないし、
サードパーティも安心して製品が出せる。まあ良し悪しだな。

651 :NAME IS NULL:2005/05/25(水) 20:41:11 ID:???
>>643
じゃ、XPとか2KProのワークグループでは、
MSDEはネットワーク接続によるアクセス利用は
できないってことか

652 :NAME IS NULL:2005/05/25(水) 22:25:26 ID:???
http://www.itmedia.co.jp/news/articles/0505/25/news015.html

653 :NAME IS NULL:2005/05/26(木) 03:50:03 ID:Xumyr8me
月に2〜3回のペースで、レコード追加処理で
ODBCが"時間切れになりました"エラーを返し出し、
それ以降はシステムをシャットダウンするまで
"時間切れ〜"状態から復帰しません。
でも、参照処理(SELECT文)は正常に行えるようです。
SQL SERVERのログを見ても、原因となるログが残ってなくって困ってます。
補足情報として、開発環境はVCのMFCを使用していて、
システム起動時にDBオープンしたままシステムを
シャットダウンするまでDBをクローズしません。
クエリータイムアウトはデフォルトの15秒で、
"時間切れ〜"が発生する直前までは1秒以内に
正常処理が行われてます。
どんな内容でもかまわないので、情報の提供をお願いします。

654 :NAME IS NULL:2005/05/26(木) 06:06:48 ID:???
デッドロックしてるんじゃね?

655 :NAME IS NULL:2005/05/26(木) 09:25:28 ID:???
>>652
これは、WindowsプラットフォームではSQL躍進て判断でよろしいですか?


656 :NAME IS NULL:2005/05/26(木) 09:53:43 ID:???
>>653
たぶんどっかでロックしてるかもね
余裕あるならプロファイラでロックとクエリー情報調査したほうがいいんじゃない?
あとシステムをシャットダウンするまで〜ってトランザクション貼りっぱなしってオチはないよね?


657 :NAME IS NULL:2005/05/26(木) 10:43:04 ID:AsY1zCLS
スレ違いだったら申し訳ありません。
SQLServer2000をインストールする途中で全然進まなくなってしまいました。

1.インストールCDを入れる
2.画面からSQLServer2000のコンポーネントを選択
3.画面からデータベースサーバのインストールを選択

これ以降インストール画面に進まずセットアッププロセス自体も止まってしまいます。
CDに異常があるというわけでもなく困っています。
直前にやった行動はSQLServer2000クライアントをアンインストールし
レジストリ等をクリーンしました。

Documents and Settingsの中等も見てみたのですが全くダメで…。
どなたか似た事例を経験した方、もしくは回避方法知ってらっしゃる方いましたら
教えて頂けないでしょうか? よろしくお願い致します。


658 :NAME IS NULL:2005/05/26(木) 13:56:58 ID:???
>>657
とりあえずOSが何かぐらいは書こうよ

659 :NAME IS NULL:2005/05/26(木) 14:31:38 ID:???
Access + MSDE (両方ともOSはXP) で、ADO接続で
業務システム開発することになってしまいました。(TT)
下の区分に分けたときに、VBA(ADO)[クライアント側]と
ストアドor関数[サーバー側]とで、パフォーマンス的に
すみわけとなる基準を教えて頂けないでしょうか?
・[画面]
・[印刷]
・[内部処理]・・・バッチ更新 ※.件数は300万件〜500万件程度です
よろしくお願い致します。

660 :NAME IS NULL:2005/05/26(木) 14:59:06 ID:???
>>658
すみませんでした。
OSはXPProSP1です。

661 :NAME IS NULL:2005/05/26(木) 15:07:20 ID:WsdyYV9H
>>636
漏れも知りたい。
誰か教えてくれないか age

662 :NAME IS NULL:2005/05/26(木) 17:35:56 ID:???
>>661
この辺りが特徴だと思う。
・高精度の印刷が出来ない。
・バーコードの部品が無い。
・ウイザードがAccessほど充実していない。
・ユーザの操作に対する権限を柔軟に設定出来る。

663 :NAME IS NULL:2005/05/27(金) 16:24:31 ID:???
ありがとう 参考になったです。

664 :NAME IS NULL:2005/05/27(金) 16:40:27 ID:l5/VzWRA
マイクロソフト ソフトウェア製品使用許諾契約書

MICROSOFT WINDOWS 2000 PROFESSIONAL

.....

1. ライセンスの許諾。マイクロソフトは、お客様が本契約書の
すべての条項を厳守することを条件として、お客様に対し以下
の権利を許諾します。
a. ..... お客様は、ファイルとプリンタの共有サービス、
インターネット インフォメーション サービス、およびリモート アクセス
(接続の共有およびテレフォニー サービスを含みます) のうち 1 つ
または複数の本製品のサービスを利用するため、最大 10 台の
コンピュータまたはその他の電子デバイス (以下総称して「デバイ
ス」といいます) から同時に本ワークステーション コンピュータに接
続することができます。接続数をプールまたは統合する「マルチ
プレキシング」またはその他のソフトウェア、ハードウェアを利用す
る場合であっても、間接的な接続数が上記の 10 台という制
限を越えてはならないものとします。本製品を使用して、本
ワークステーション コンピュータに格納されている他の実行可能
ソフトウェアをデバイスが使用、アクセス、表示、または実行を行
うことはできません。また、デバイスが本製品のユーザー インター
フェイスを表示することもできません。ただし、上記 2 点の制限
は、デバイスが本製品の使用許諾を別途獲得している場合は
適用されません。
b. .....
c. 権利の留保。マイクロソフトは、本契約書においてお客様に
明示的に許諾されていない権利をすべて留保します。

以下略



665 :NAME IS NULL:2005/05/27(金) 17:00:06 ID:???
ServerOSを買わせようとするマイ糞ソフト
MSDEのページにきちんと (・∀・)カケ、バカ!

666 :NAME IS NULL:2005/05/27(金) 20:39:07 ID:???
ばかだな。マイクロソフトの基本戦術をまだ理解してないね。
それじゃあ最初から使うやつが減っちゃうだろ。
最初はみなさんご自由にと使わせておいて、後からライセンス違反だと言って金をふんだくるんだよ。



667 :NAME IS NULL:2005/05/29(日) 16:33:49 ID:mT4uUC7O
CREATE TABLE M_TR_SS(
TR_CD CHAR(4) PRIMARY KEY NOT NULL,
TR_SS_CD CHAR(4) PRIMARY KEY NOT NULL,
D_FROM CHAR(10) NOT NULL,
PRICE INT
)

とやると、「テーブル 'M_TR_SS' に複数の PRIMARY KEY 制約は追加できません」。
といわれるんですが、どうしたもんでしょう?

668 :NAME IS NULL:2005/05/29(日) 16:46:45 ID:???
CREATE TABLE時じゃなくて、後からALTER TABLEで設定

669 :自己解決:2005/05/29(日) 16:47:16 ID:???
>>667
CREATE TABLE M_TR_SS(
TR_CD CHAR(4) NOT NULL,
TR_SS_CD CHAR(4) NOT NULL,
D_FROM CHAR(10) NOT NULL,
PRICE INT
PRIMARY KEY (TR_CD,TR_SS_CD)
)


ですな

670 :NAME IS NULL:2005/05/29(日) 16:48:26 ID:???
>>668
その手もありましたな。失念しておりました。

>>667
参考URL
制約 - JPUG新潟
http://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?%C0%A9%CC%F3

671 :NAME IS NULL:2005/05/29(日) 17:13:13 ID:???
Warning: Too many connections in /home/www/html/r1/includes/lib/db_mysql.inc on line 73
Database error: pconnect(211.8.35.147, nahi, $Password) failed.
MySQL Error: ()
Session halted.

672 :NAME IS NULL:2005/05/29(日) 18:22:37 ID:???
誰かいいかげんにこのスレのタイトルを直せよ。


673 :NAME IS NULL:2005/05/29(日) 19:02:20 ID:???
つ 微小軟件構造化問合言語鯖総合スレ

674 :NAME IS NULL:2005/05/29(日) 19:14:33 ID:DsX0UAXS
セキュリティについて質問させてくだし。
混合モードとwindows認証の違いがわからないっす。
混合モードのSQLまたはwindowsってwindowsだけもできるんですかね?
それだとwindowsとかわランス

675 :NAME IS NULL:2005/05/29(日) 19:22:39 ID:???
>>674の日本語がわかランス。

676 :NAME IS NULL:2005/05/29(日) 19:45:27 ID:???
>>674
books onlineに載っていたような。

677 :NAME IS NULL:2005/05/29(日) 21:35:17 ID:???
まず、2つある。
・基本認証(SQLServer認証)・・・SQLServerが独自にユーザIDとパスワードを管理する。
・Windows認証・・・OSのアカウントを用いる(代用する)。シングルサインオンと言われるやり方ができる。

で、どっちでもいけるのが混合認証。
でもSQLServer2000からは基本認証が選べなくなって、Windows認証と混合認証だけしか選択できない。

便利そうなWindows認証だが、問題もある。
Windows認証はOSの認証サービスを使うから、SQLサーバを通じてこの機能を使うパソコンすべてにWindowsCALが必要となる。
クライアントが100台あるとして、SQLServerCALが100台分必要。これと別にWindows認証を使う場合は、WindowsCALも100台分必要となる。



678 :NAME IS NULL:2005/05/30(月) 01:15:05 ID:JT3aRhOh
インデックスの作成についてアドバイスを戴きたいのですが、
CREATE TABLE [TABLE1] (
[a] [int] IDENTITY (1, 1) NOT NULL ,
[b] [int] NULL ,
[c] [datetime] NULL ,
[d] [varchar] (50) NULL ,
CONSTRAINT [PK_TABLE1] PRIMARY KEY CLUSTERED
(
[a]
)
)
テーブルの用途は日時[c]に発生したログ種類[b]のログテキストを[d]に収めるもので、
参照時には

679 :NAME IS NULL:2005/05/30(月) 01:48:44 ID:JT3aRhOh
>678
途中で切れてしまいましたすみません。

インデックスの作成についてアドバイスを戴きたいのですが、
1)
CREATE TABLE [TABLE1] (
[a] [int] IDENTITY (1, 1) NOT NULL ,
[b] [int] NULL ,
[c] [datetime] NULL ,
[d] [varchar] (50) NULL ,
CONSTRAINT [PK_TABLE1] PRIMARY KEY CLUSTERED
(
[a]
)
)
テーブルの用途は日時[c]に発生したログ種類[b]のログテキストを[d]に収めるもので、
参照時には
select top 1 * from table1 where b=1 and c>='200x-01-01 00:000:00' and c<='200x-02-01 00:00:00' order by c desc
のように参照されます。
ある同僚からクラスタードインデックスを(c)にした方がよい(パフォーマンスがあがる)とのことで、

2)
CREATE TABLE [TABLE1] (
[a] [int] IDENTITY (1, 1) NOT NULL ,
[b] [int] NULL ,
[c] [datetime] NULL ,
[d] [varchar] (50) NULL ,
CONSTRAINT [PK_TABLE1] PRIMARY KEY NONCLUSTERED ([a])
)
CREATE CLUSTERD INDEX IX_TABLE1 ON TABLE1 (c)
CREATE INDEX IX_TABLE1 ON TABLE1 (b)

のようにしました。
確かにSELECTのパフォーマンスはあがったのですが、
個人的に非常に気持ちが悪いテーブルの設計なので,
意見が聞きたいのです。
因みにbは1から100まで
発生頻度はまちまちですが、平均で10秒で1rec位

3)
CREATE TABLE [TABLE1] (
[a] [int] IDENTITY (1, 1) NOT NULL ,
[b] [int] NULL ,
[c] [datetime] NULL ,
[d] [varchar] (50) NULL ,
CONSTRAINT [PK_TABLE1] PRIMARY KEY CLUSTERED ([a])
)
CREATE INDEX IX_TABLE1 ON TABLE1 (b,c)

で試してみましたが、2)の方が早いんです。

うーん、納得できない。

680 :NAME IS NULL:2005/05/30(月) 02:11:02 ID:JT3aRhOh
ご存知の方居ませんか?

テーブルにイメージを格納するフィールドが有る場合に、
レコードを削除するときのパフォーマンスで、
データベースファイルをRAIDのドライブに作成するととっても時間がかかるのですが、
何かご存知ないですか?

HDベンチでは倍のパフォーマンスがあるのに、
削除時には倍の時間が掛かってしまうのです。
データベースファイルの大きさは10GBほど。
PEN4HT3GHz 2GMB SATA 80GB 7200rpm XPproにMSSQL2Kでsp3aあてたものと
Xenon3GHz×2 2GMB UltraSCSI320 RAID0+1 120GB×3 7200rpm WIN2Kserver MSSQL2Kでsp3a
で、HDベンチはXenonが倍、でもdeleteの時間はXenonが倍。

なんで?ッテ感じなんです。
イメージ型のフィールドが無ければXenonPCが文句無く早いのですが。


681 :NAME IS NULL:2005/05/30(月) 09:26:42 ID:???
>>666
てかキミのがばかだろ? >>665はマーケティングのことでなくて
(それを踏まえて)不親切でずるいてキカキコがあると思われ
1レス1レスよく嫁、なw

682 :NAME IS NULL:2005/05/30(月) 11:12:22 ID:???
>>679
テーブルの件数と[c][b]の統計がどうなっているのかわからんけど、
検索のSelectだけ見ると範囲指定している[c]にクラスタードするのが理想的なんで
2)のほうが早いでしょうな
あとはselect *をやめて[c][b][d]の順にインデックスしてカバリングするとか(そんかし更新系影響あるかもしれんけど)
まぁ実行プラン見ながら比較してみることですな?

683 :U ◆CZtFsGiu0c :2005/05/30(月) 15:40:59 ID:???
>>679
「気持ち悪い」理由はなんでしょうか。「クラスタインデックスをPK以外に
設定する」ことですか? PKによる検索はほとんどの場合1件ごとになるので、
クラスタインデックスに設定するメリットはほとんどありません。なぜか
PKをクラスタインデックスに設定することを推奨していたり、PKをクラスタ
インデックスに設定するサンプルが多いですが、クラスタインデックスを
設定してメリットがあるのは、このように「特定の範囲を連続して取得する」
カラムに対してです。


684 :NAME IS NULL:2005/05/30(月) 17:34:18 ID:???
SQLServer初心者です。
物理設計の中の、データベース容量(SIZE)見積りですが、
テーブルの計算式しか見つかりません。
そこで、見積りの必要なオブジェクトとその計算式を知りたいのですが
どなたか教えて下さい。 あるいは出ているところを教えて下さい。

あきれてしまうような質問で申し訳ありません。
お願い致します。

685 :NAME IS NULL:2005/05/30(月) 21:20:05 ID:???
Bill's penis is MICRO and SOFT !!!

686 :NAME IS NULL:2005/05/30(月) 21:34:04 ID:???
>>680
単にロールバックできるようにログ残しているだけでは?
truncate tableとかdrop tableでいいなら、そっち使えば?

687 :NAME IS NULL:2005/05/30(月) 21:40:46 ID:???
>>684
計算しても目安にしかならないよ。
insert/delete/updateを繰り返しているとAccessの様にどんどん容量が膨張してくる。
最適化(だっけ?)すればまた小さくなるけど。
インデックスも結構容量使う。

ver6.5の時にパフォーマンスチューニングっていう本を買ったけど、ver.2000でもSQLServerの初心者向きじゃない本か、オンラインヘルプか、MSサイトあたりを探せばあると思うけど。




688 :NAME IS NULL:2005/05/31(火) 12:02:02 ID:???
>>687
極端な話が、Oracleのように、
「データベースの初期サイズ」を見積もる考えないんですか?
「テーブルの初期サイズ」だけ見積もって、後は、その合計の1,3倍くらいとか
アバウトな計算になるんですか? ぐぐってもSQLServerの見積りについて
引っ掛からないし・・・わからない
知っている方アドバイスお願いします。

689 :NAME IS NULL:2005/05/31(火) 18:43:15 ID:???
>>688
期待してるようなものはないと思いますよ。
想定データの1/nと2/nの規模で実際にデータを投入してその差から
想定データの必要容量を推定するのが現実的だと思うけどな。
Oracleのだって限定された範囲の容量の計算式だから、
全体の容量を見積もるのにその値を積算するのは危険だと思う。
索引が追加になったりPICTなんたらあたりのパラメータをいじっただけで極端に変わるしね。
ただ顧客がそういう計算式を欲しがる傾向にあるのは確かなので、
差分値で見積もった後、もっともらしい計算式を作文して資料としてつけることはあるけどね。

690 :NAME IS NULL:2005/05/31(火) 19:57:03 ID:???
そういえば会社の先輩が、テンポラリのデータファイルがガンガン
デカくなって困るとか言ってたな
再起動すると縮小されるんだけど、みたいな

691 :NAME IS NULL:2005/05/31(火) 20:54:01 ID:???
>>688
俺もOracleなら最初にきちんと計算してcreate table でアロケートする。
SQLServerはそんなこと知らないバカでも使えるという意識しかない。
実際のデータ件数に関係なく容量どんどんふくれ放題だし。

692 :NAME IS NULL:2005/05/31(火) 20:57:49 ID:???
>>690
SQLServer2000では、tempdbは再起動すると一度削除されるから初期サイズに戻る。
うちのSQLServerは数ヶ月再起動せずに稼働続けていたら、tempdbががんがんふくれてGB単位になりディスク不足におちいってしまった。
それ以来定期的にtempdbを圧縮するタスク入れてる。

693 :NAME IS NULL:2005/06/01(水) 11:03:28 ID:???
>>684です。 >>687さんはじめ、レスありがとうございます。
情報収集しまくってるんですが、データベース初期サイズの計算方法については、
進展があまりなく、
・テーブルの容量+インデックスの容量を適度(?)に膨らませたサイズ
・ログファイルについては殆ど記述無し
・その他についても記述なし
という結果です。 
もう数年前ですが、Oracleの時は結構苦労して初期サイズの計算した経験があるだけに
、SQLServerの初期導入は、その殆どがアバウトなのかな?と疑問に思いました。
気持ち悪いと言えば気持ち悪いです。 自動拡張依存のような・・・
私のググり方が悪いのかも知れませんが、引き続き情報があれば頂きたく
お願い致します。


694 :NAME IS NULL:2005/06/01(水) 12:17:06 ID:???
Oracle7や8の時代の「エクステントが・・」に悩まされた人たちには
自動拡張やおまかせ機能は気持ち悪いのかもしれないが、
特性を理解して使えば使いやすいから嫌がらないで使ってみなされ。
SQL Serverは監視ツールやイベントログでリソースの使用状況の監視が
やりやすく構成の変更も容易にできるので、予備のディスクエリアを
準備しておいて使用状況をみて投入していく感じで使えばよい。
(もちろん事前にある程度の見積もりは必要なのだが)
Oracle10gを見てるとこの手の機能が充実してきているようにも思うが
どうなのだろう。

695 :NAME IS NULL:2005/06/01(水) 14:07:22 ID:s9KvkQT9
はじめまして。
質問させて下さい。
MySqlのconcat(フィールド1,フィールド2)
に相当するような関数、又は書式を教えて下さい。

select "Operating_System.OSType" & "AppsoftwareSuites.SuiteName"
select "Operating_System.OSType" || "AppsoftwareSuites.SuiteName"
などを試してみましたがダメでした。

queryanalyzerを使用しています。

696 :NAME IS NULL:2005/06/01(水) 14:09:31 ID:???
ここは「*MS* SQL Server 総合スレ2」

697 :NAME IS NULL:2005/06/01(水) 14:24:09 ID:???
4行目以降も読めYO!w>>696

698 :NAME IS NULL:2005/06/01(水) 14:26:32 ID:???
"〜" てフィールド名?

文字列なら
select 'Operating_System.OSType' + 'AppsoftwareSuites.SuiteName'

フィールドなら
select [フィールド1] + [フィールド2]

MySqlのconcatって使ったこと無いので勘違いならゴメン。

699 :NAME IS NULL:2005/06/01(水) 14:46:28 ID:???
>>694
>>693です。 PASSJにも初期サイズ計算の記事がありませんでした
>>694さんの言うとおり、テーブルとインデックスの予想サイズに上乗せしたサイズで
スタートするのがSQLServerかなという気がしてきました
自動拡張に頼ることでパフォーマンス悪くなる事があると思うんですけどね
初期サイズ計算がテーブルとインデックスだけというのは、おっしゃるように気持ち悪いですが
ないんでは仕方ありません。
アドバイスをありがたく頂いたので、それを参考にさせて頂きますね

700 :NAME IS NULL:2005/06/01(水) 19:51:44 ID:HV/e5Aoc
>>699
PASSJにまったくないわけじゃないぞ。
ttp://www.sqlpassj.org/bbs/ml_disp.aspx?forum_id=3¤t_page=1&disp_mode=0&detail_mode=1&message_id=18559

ttp://www.sqlpassj.org/bbs/bbs_disp.aspx?forum_id=1¤t_page=1&disp_mode=2&detail_mode=1&message_id=3086
から始まるスレ参照な。

まぁ、基本的には >>694 と同じなんだけどな。(汗)

701 :NAME IS NULL:2005/06/02(木) 09:27:09 ID:???
>>700
レスありがとうございます。 書籍もあたって見ましたが、データベースサイズの初期計算について
掲載されていたのは、ピアソンエデュケーションの「MicrosoftSQLServer データベース管理者ガイド」
だけで、それも
・データファイル → ブロックと行桁数の関係中心
・ログファイル
について1ページ程度の簡易な解説だけでした。
データファイル・サイズの算定に関しては、テーブル・インデックス以外のオブジェクトのサイズは
考慮されていません。 (本当に情報が少ないです)
あと、必要メモリ・サイズ(キャパシティ・プランニングのガテゴリでしょうが)についても
あまり記述がありません。
要望がMSDE・SQLServerなので情報薄も仕方ないのかもしれませんが、
あとのチューニングは付いて回るものの、なんとかまともな初期導入をしたいものです。


702 :NAME IS NULL:2005/06/02(木) 09:43:04 ID:f7QQZWCq
ADO.net⇔SQL Server

この間の通信はPORT80でやってるんか?
プロキシスルーもできるってことでいいんかな。

703 :NAME IS NULL:2005/06/02(木) 09:46:08 ID:???
なんで80?

704 :NAME IS NULL:2005/06/02(木) 11:14:02 ID:???
>>701
>テーブル・インデックス以外のオブジェクトのサイズ
懸念している(テーブル・インデックス以外の)オブジェクトと言うのは
具体的にはどういうものを想定しているのでしょうか?

BOLに記述されているデータベースサイズの見積もりでもテーブルとインデックス
のサイズのみを計算の対象としているようでした。
逆にいうと、それ以外のものではデータベースサイズに対して有意な差が出ない
と言うことではないのでしょうか。

必要メモリと言うのは、例えばテーブルサイズ・データ量から、データページを
キャッシュするのに十分なメモリサイズを算出すると言うことでしょうか。
そういう情報ということであれば、確かに見当たりませんね。

積めるだけ積んで、後は成り行きに任せるしかw

705 :NAME IS NULL:2005/06/02(木) 11:33:12 ID:f7QQZWCq
>>703
なんかこういうのを読んでたんだけど、「.NET」って環境は全てHTTP(or SMTP)で通信してるのかな?
と思ったわけです。
↓↓↓↓↓↓

 .NET対応のソフトウェアやハードウェア・デバイスは、ネットワーク(インターネット)を介して
通信し、それぞれが分散する部品の1つとして連携しながらさまざまな処理を進める。この際
の通信手段としてはWebサービス(マイクロソフトはXML Webサービスと呼んでいる)と呼ば
れるオープン・プロトコルを使う。Webサービスは、HTTP(Webページのアクセスで使用)や
SMTP(メール送信で使用)といった既存のトランポート・プロトコルを使い、そのうえでXML仕
様のデータをやり取りすることで、アプリケーション連携を可能にするものだ(詳細は後述)。
このオープンなWebサービス・プロトコルを利用したアプリケーション連携の基盤となるもの
が、マイクロソフトがWindows OS上に実装したものが.NETプラットフォームである。

で、こんなことができちゃうのかな?と

SQL Server 7.0以上
↑ ↓
プロキシ
↑ ↓
Windowsフォームアプリ(ADO.NET含む)


706 :NAME IS NULL:2005/06/02(木) 12:03:15 ID:???
SQL Server 自体は.NET対応なのかよ

707 :NAME IS NULL:2005/06/02(木) 13:12:52 ID:???
>>704
データベースバッファ、ログバッファの記載が見当たらないですからねw

まあ確かにディスクもメモリも安価になっているとはいうものの、
ある業務システムのハードウェア条件を、どう提示してるのかわかりません

そう考えると、その成り行き加減がOracleに勝てない理由なんですかね?

インスタンス単位の必要メモリ算出方法位、情報として出して欲しいですね

708 :NAME IS NULL:2005/06/02(木) 13:14:17 ID:???
あ、あとここは、良スレですね
失礼しました

709 :NAME IS NULL:2005/06/02(木) 14:10:37 ID:???
>>705
これならできるよ

SQL Server 7.0以上
↑ ↓(ポート1433)
XML Webサービス(ADO.NET含む)
↑ ↓(ポート80)
Windowsフォームアプリ

710 :NAME IS NULL:2005/06/02(木) 15:01:15 ID:???
>>707
MSSQLは基本的にディスクの総容量とメモリの総容量以外ほとんど自動で
調整されて動く上、マニュアルではほとんど調整させないようになっている。
設計思想が大きく異なるためチューニング等の手法も大きく異なる。
DBMSの選択権があるのならシステムの規模や用件にあったものを選択すべきだし、
選択権がないのなら既成概念は捨ててそのDBMSとまともに向き合ったほうが良い。

純粋にMSSQLの容量見積やチューニングについて語りたいならいいが、
Oracleとの比較をやりたいのならこっちのスレに移動しないか。
Oracle>>>>>>SQLServer
http://pc8.2ch.net/test/read.cgi/db/1057151330/l50

711 :NAME IS NULL:2005/06/02(木) 15:20:29 ID:???
>>707
こういう開発ではなく運用に関する情報はTechNetあたりにありそうだと思って
見てみたのですが、あんまりなさそう。とりあえずこういうのがあった。

Planning for Consolidation with Microsoft SQL Server 2000
ttp://www.microsoft.com/technet/prodtechnol/sql/2000/plan/sql2kcon.mspx
| As with other aspects of consolidation, you must first collect specific
| benchmarking and application/system profiling data to make an accurate
| decision about your memory needs.

まあデータ突っ込んで測定しろ、と。

>データベースバッファ、ログバッファの記載が見当たらないですからねw

このあたりかな
SQL Server Memory Pool
ttp://msdn.microsoft.com/library/?url=/library/en-us/architec/8_ar_sa_1zu4.asp?frame=true

>ある業務システムのハードウェア条件を、どう提示してるのかわかりません

メモリがあればあるだけ使う、無ければそれに合わせて動くので、
むしろパフォーマンス要件(や予算)などを規定しないと決められないかもしれません。
>そう考えると、その成り行き加減がOracleに勝てない理由なんですかね?

良くも悪くもそれがSQL Serverかも。なんて書くと、本物のDBAに怒られそう。

712 :707:2005/06/02(木) 15:37:25 ID:???
>>707さんはじめ、レスして頂いた方ありがとうございました。

一言弁解させて下さい。
SQLServerに対して批判している訳ではありません。
また、Oracleと比較してるわけでもありません。
自分の場合、Oracleしか経験していなかったので、SQLServerの初期容量(ディスク、メモリ等)の
見積もりや計算方法が、情報が少なくてわからないという素朴な疑問から始まったものです。
まあ、イラつきは正直ありましたが(汗

このスレや他のHPのみなさんのおかげで考え方がだいぶわかってきました。

このスレ含めて、インターネット上に初期サイズについてのトピが非常に少ないというのは
私が「気にしないでいいようなこと」を聞いたのか、「本来重視すべきトピ」なのかは
疑問に思います。

713 :707:2005/06/02(木) 15:38:38 ID:???
間違えました。
>>707さん →×
>>711さん →○
失礼しました

714 :NAME IS NULL:2005/06/02(木) 15:51:23 ID:???
トピ・・・

715 :NAME IS NULL:2005/06/03(金) 10:02:07 ID:EjOlD3De
tempdbをバックアップする方法ってあるのでしょうか?
本来必要の無い行為ですが、監視Toolがアホで全DB
についてバックアップの有無を定期的に報告してきてし
まうのです。

716 :NAME IS NULL:2005/06/03(金) 10:28:40 ID:???
>>715
・監視対象外にする
・監視ツールの報告を止める
・監視ツールからの報告を無視する

717 :NAME IS NULL:2005/06/03(金) 13:11:51 ID:???
自動圧縮オプションってつけてますか?

718 :NAME IS NULL:2005/06/06(月) 15:11:37 ID:K1uL96CQ
質問です。
作成したDTSパッケージのみを客先に持っていきたいのですが、
DTSパッケージのみをエクスポート・インポートするにはどうすれば良いですか?

719 :NAME IS NULL:2005/06/06(月) 18:00:27 ID:???
>>718
DTSパッケージの実体はmsdbデータベースのsysdtspackagesテーブルの各行だったと思う

720 :初心者:2005/06/06(月) 20:42:22 ID:HNNBGjbm
突然申し訳ございません。SQL初心者です。
何気なく使用していたのですが、いつのまにかデータベースに共有のマークがついてしまいました。
原因がわからず、あれこれと設定を変えているのですが共有マークがはずれません。
ご存知の方教えていただけませんでしょうか。よろしくお願いします。

721 :NAME IS NULL:2005/06/06(月) 21:19:10 ID:gU+b6aWh
>>718
http://www.microsoft.com/japan/msdn/sqlserver/columns/dts/dts1.asp#5
構造化ストレージファイルとして保存すれば簡単にネットワーク上でパッケージのコピー、移動、送信が可能です。


722 :NAME IS NULL:2005/06/07(火) 00:17:31 ID:???
>>720
共有マークというのがよくわからないのですが、
*.mdbなどがあるディレクトリがフォルダ共有になったということですか?

723 :初心者:2005/06/07(火) 10:11:23 ID:0SItwb8W
Enterprise Managerを立ち上げてデータベースフォルダの中を見ると、
円柱状のアイコンというかマークがありますよね。
それに共有の『手』のマークがついてしまったんです。
うーん、どうしてかしら?

724 :NAME IS NULL:2005/06/07(火) 11:24:38 ID:???
どうしてかしらね。
どこか他のサーバと同期してるんじゃない?

725 :NAME IS NULL:2005/06/07(火) 14:55:41 ID:???
レプリケーションで、パブリッシャーに設定するとそのマークが付く。
パブリケーションデータベースから除外すれば消える。
テーブルだけ除外しても消えないので注意。

726 :初心者:2005/06/07(火) 16:33:03 ID:0SItwb8W
>>725
ありがとうございます。やってみます。


727 :NAME IS NULL:2005/06/07(火) 23:14:53 ID:???
会社のSQLサーバーのバックアップデータ&テーブルを
自前のPCに移植するため今自前PCにて復元かけています。
しかし、復元が途中で止まってしまう。これいったいなに???

テーブル数は36項目。
うちユーザー作成16項目。
ひとつのテーブルは20件前後のデータあり。
テストデータなので少ないのですが。。
何度やっても途中で止まる。
要因これってのが判らない。。エロイ人教えて

728 :NAME IS NULL:2005/06/07(火) 23:23:45 ID:???
>>727
バックアップなんて面倒なことせず、バイナリそのままコピーして持っていってアタッチするほうが楽。

729 :NAME IS NULL:2005/06/08(水) 00:04:16 ID:???
>>728
猛チョット具体的に教えてくだされ

730 :NAME IS NULL:2005/06/08(水) 00:11:42 ID:???
>>729
1.SQL鯖のサービスをとめて、該当するDBのMDF・LDFファイルをコピー
2.自前のPCに1のコピーをペーストしてsp_attach_db実行
詳しくはBooksOnlineを「アタッチ」で検索してくらさい。

731 :NAME IS NULL:2005/06/08(水) 00:52:15 ID:???
>>730
ああ、やはしMDFファイルでしたか。。。

実はさっき削除して再度CRT TABELを実行して、もう一度復元したら
できました。
結局原因がなんなのかわかりません。。。
でもせっかくなので>>730氏の方法も試したいので
自前PC内テーブルは破棄。ただいままっさら。
明日会社のSQLサーバーより再度MDF等のファイルをコピーして
やってみます。ひとつ勉強になった。感謝です。

732 :731:2005/06/08(水) 23:09:47 ID:???
>>730
今しがた、コピーしたファイルをフォルダに格納。
亜タッチ完了。終了しました。
たしかにこの方が楽です。
いろいろありがとうでした。

733 :NAME IS NULL:2005/06/09(木) 10:37:39 ID:???
ごめ。ちょこっと質問
SQLServer6.5 + ODBC + Access2000だとDBから引っ張ってきた日本語が化ける
んだけど、これって

・SQLServer6.5は日本語が内部unicodeじゃない
・Access2000はunicodeしか扱えない

のが原因ということであってる?解決法は

・Access2KをあきらめてAccess97?にする
・SQLServerを6.5→2KにVerUp

しかないんでしょうか?

734 :NAME IS NULL:2005/06/09(木) 11:13:21 ID:???
追補
SQLServer用ODBCドライバが2.xだと文字化けせず、3.xや2000.xだと文字化け。
ググってみたけど、ver3.7以降かそれより前かでunicode化されてるかどうか違う
みたいなのでやっぱunicodeがうまく扱えてないのが原因ぽいんだけど。

でも普通に考えると、新しいODBCドライバのほうが

SJIS? ----> ODBCドライバがコード変換 ----> unicode -> MSAccess

てなりそうなもんなんだけど????




735 :NAME IS NULL:2005/06/09(木) 21:27:56 ID:???
内部的にUnicode使っているのと、クライアントからアクセスしたときにUnicodeで出すかどうかは別だと思うけどねえ。
単にAccess2000の表示フォントの問題とかじゃないの? nvarcharとかならどうだか知らないけど。


736 :NAME IS NULL:2005/06/10(金) 09:34:04 ID:9ugW0i++
レプリケーションするとのサービスアカウントにはドメインアカウントでないと
だめっぽいのですが、ということは同一ドメイン内でないとレプリケーション
できないということでしょうか?ログ配布なら違うドメインでもOKですよね?

737 :NAME IS NULL:2005/06/10(金) 09:35:05 ID:9ugW0i++
なんか日本語変ですねorz

738 :NAME IS NULL:2005/06/10(金) 12:00:13 ID:9ugW0i++
なんだか出きそうですね。お騒がせしました

739 :ミ・Д・彡Delフサ:2005/06/11(土) 01:25:35 ID:d74B+wNz
すまそん、客先です....

どなたか、>>5の状態、での

普通のBAKファイルとTRNファイルとの
組み合わせでのリストア方法を教えていただけないでしょうか?

ちょっちまぢまぢに
おながいします。

....こんな時間に.....orz


740 :NAME IS NULL:2005/06/11(土) 01:45:22 ID:???
>>739
俺は初心者だからワカラナイヨー
がんばれ!
がんばれ!

741 :NAME IS NULL:2005/06/11(土) 02:06:50 ID:???
>>739
リストア前にまだバックアップされてないログをバックアップする必要がある。
データベース本体のファイル(MDF)が壊れてる場合もログだけのバックアップは可能。
うまくログをバックアップできない場合は、Enterprise Managerを一度終了させてから
操作するとよい。それでもうまくいかない場合は、直接SQLでBACKUP LOGコマンドを
NO_TRUNCATEオプションで実行する。

742 :ミ・Д・彡Delフサ:2005/06/11(土) 02:26:07 ID:d74B+wNz
超超、最新にならなくても、いいんだ。

とりあえず、
BAK1
TRN1
TRN2
…省略…
TRN24
BAK2
TRN25
TRN26
TRN27
あと、無し

とファイルがあったとして、

@BAK2をNoRecovery オプションで復元
ATRN25/TRN26をNoRecovery オプションで復元
BTRN27をRecovery オプションで復元

したら、それでよさそうかとおもうんだが、

@はうまくやれるんだけど
Aのやりかたがわかんなくて、普通に追加でリストアしようと
EntMgrで操作しても

---------------------------
Microsoft SQL-DMO (ODBC SQLState: 42000)
---------------------------
The backup set in file 'C:\Program Files\…省略…_tlog_200506110010.TRN' was created by BACKUP LOG and cannot be used for this restore operation.
RESTORE DATABASE is terminating abnormally.
---------------------------
OK

ってエラーがでるんだよぉ。。。。(ToT)
すごーく、逝きそうです。
パーティーは自社3人+DELL社1人....



743 :ミ・Д・彡Delフサ:2005/06/11(土) 02:31:03 ID:d74B+wNz
すまそ、エラーメッセが英語なのは
SQL鯖2K英語版だからす...

漏れと同僚は、NorecoveryオプソでのTRNの
復元方法がわからないのです。たぶん操作が間違っているんですあ

いつもは、BAKファイルからの普通のRecoveryオプションでの復元しか
やらないので....

このパーティーは全滅かしら...

744 :NAME IS NULL:2005/06/11(土) 03:03:19 ID:???
エンタープライズマネージャで操作するなら、
BAK2を復元「デバイスから」、データベース全体、復旧完了状態「データベースを操作不可状態」
途中のログは復元「デバイスから」、トランザクションログ、復旧完了状態「データベースを操作不可状態」
最後のログは復元「デバイスから」、トランザクションログ、復旧完了状態「データベースを操作可能状態」
でいける気がするのですが。

745 :NAME IS NULL:2005/06/11(土) 03:11:08 ID:???
RESTORE DATABASE is terminating abnormally. ということはもしかして
ログに対してRESTORE DATABASEコマンドを使ってませんか?
投入順序は次のとおりのはず
RESTORE DATABASE ... WITH NORECOVERY
RESTORE LOG ... WITH NORECOVERY
RESTORE LOG ... WITH RECOVERY


746 :ミ・Д・彡Delフサ:2005/06/11(土) 03:35:21 ID:d74B+wNz
な、、、なんとかできそうっす、、、、

トランザクションログ復元指定をしてなかったっす。。。


あと、テストしたファイルも破損してたらしい、、

(・_・)(._.)ありがとうございます。

もう少しだ。ほんちゃん環境で戦ってみます...

747 :NAME IS NULL:2005/06/11(土) 07:43:21 ID:???
>>746
がんばれ!
がんばれ!

748 :NAME IS NULL:2005/06/11(土) 21:51:25 ID:FxunfU63
自宅でSQLの勉強をしたいので、SQL2005ExpressをローカルのPCにインストールしてみました。
SQLサーバ2000のEnterprise Managerからアクセスしようとしたら、接続が確立
できませんでした、といわれ、途方にくれています。

インストール時には混合認証にして、SAパスワードも設定しました。
インスタンスは既定ので、もうひとつはなんだったか不確かですが、そのまま次へ
をクリックしました。

どうすればEMからアクセスできるようになるのでしょうか?
あと2005は画面右下にアイコンが表示されませんよね?

749 :Delフサギコ ◆A6VzDeLphI :2005/06/13(月) 00:50:01 ID:???
    ∧,,∧  ありがとうごzました
   ミ,,゚Д゚彡 
    ミ つ旦)~~
  〜と,,,~),,~)

無事、おうちにたどりつきました。

とても勉強になりました。感謝です。

750 :NAME IS NULL:2005/06/13(月) 06:11:52 ID:???
>>749
おつかれ〜

751 :NAME IS NULL:2005/06/13(月) 08:13:39 ID:???
>>748
俺も試してみたけどEnterprise ManagerではSQLServer2005には
接続できないようです。
旧バージョンのEnterprise Managerはサポートしてないのでは。
そこでSQLServer2005に接続するための代案です。
1.Express Managerをダウンロードして使用する。
2.SQL Server 2005 Workgroup Editionをインストールして
  Management Studioを使用する。

しかし、SQLの勉強をするならSQLServer2000を使った方がよいと思います。
自宅で使うならMSDE、SQLServer2000評価版、Developer Edition
のいずれかを使うとよいです。

752 :NAME IS NULL:2005/06/13(月) 18:10:17 ID:???
SQL Server 2000 です。
Windows 2003 Server のうえで動かしており、そのネットワークでは、
ドメインではなくワークグループとなっています。

この時、ネットワーク上の PC から Windows 認証の設定で、ODBC の設定をして
SQL Server へアクセスしようとするとアクセスができません。

ワークグループで Windows 認証を使用する時は、何か設定しなければ
ならないのでしょうか?

アドバイス頂けますと幸いです。

753 :NAME IS NULL:2005/06/13(月) 18:24:41 ID:???
>>752
クライアントのWindowsアカウントがサーバにも存在するのか、
そのアカウントで認証出来るようにSQL Serverが正しく構成されているのかを確認すれ


754 :NAME IS NULL:2005/06/13(月) 19:35:21 ID:jyI5ErP7
サーバ側カーソル定義して、ループ内で一行ずつFETCHするストアド
プロシージャを考えているのですが、クエリアナライザで実行すると、
それぞれのFETCHがひとつの結果として返ってきます。
クライアントプログラムの都合上、それをひとつのクエリに対する結果
として見せたいのですが、なにかやり方はありますでしょうか?

755 :NAME IS NULL:2005/06/13(月) 20:45:32 ID:???
>>754
ループの中で一時テーブルにINSERTして、終わったら一気にSELECT

756 :NAME IS NULL:2005/06/13(月) 22:06:13 ID:???
>>751
> 俺も試してみたけどEnterprise ManagerではSQLServer2005には
> 接続できないようです。
> 旧バージョンのEnterprise Managerはサポートしてないのでは。

またですか。SQLServer6.5=>7.0の時もそうでしたね。
いいかげんにしてほしいなあ。

757 :NAME IS NULL:2005/06/13(月) 22:15:11 ID:jyI5ErP7
>>755 どもです。
INSERTで日が暮れてしまいそうで。その方法以外の方法を探していた
ところなんです orz

758 :NAME IS NULL:2005/06/13(月) 22:42:40 ID:???
なぜExpressなど使うか。
June CTPがタダで置いてあるじゃないか。
Enterprise Editionもゲットできるぞ?
一年後に起動できなくなるそうだが・・・

759 :NAME IS NULL:2005/06/13(月) 23:12:35 ID:???
>>757 実際試してみて日が暮れたの?
一時テーブルでやってみてそれでも遅いのならtempdbがちっこいせいかもしれない。
一度tempdbの容量を大きくしてやってミソ。

760 :NAME IS NULL:2005/06/14(火) 01:01:28 ID:???
>>757
INSERTより一行ずつFETCHする方に時間がかかってるんじゃないかな。
対抗馬でtempdbの復旧モデルをシンプル以外に変えてるとか。
大穴でtempdbじゃなく普通のテーブルをワークにしてるとか。

761 :NAME IS NULL:2005/06/14(火) 01:15:34 ID:???
>>759
すみませんでした。実際にやってみます。1000万行↑の一時テーブル・・・怖いな・・

762 :NAME IS NULL:2005/06/14(火) 03:20:35 ID:???
>>756
内部構造が大きく変わってるだろうから仕方ないんじゃないの?
下手に旧版から接続できるようにして変な動作されるよりいいと思うが。

763 :NAME IS NULL:2005/06/14(火) 10:50:52 ID:???
>>761
1000万行のサーバサイドカーソルってメモリが足りなくなるんじゃね?
ほんとにカーソルを使わなきゃ出来ない処理なのかどうか考えてみたら。

764 :NAME IS NULL:2005/06/14(火) 12:04:26 ID:Ff0KhJX0
>751
ありがとうございます。
どうしようもないのでMSDE2000を使いました。たしかDevエディションって有料ですよね?

ExpressManager とEnterpriseManagerを混存させたくなかったので、とりあえずこのままいきます。

765 :NAME IS NULL:2005/06/14(火) 12:05:06 ID:FN/Zifsa
SQL Server2000 Developer Editionを購入したのですが、
中に
・SQL Server 2000 Developer Edtion(64bit)
・SQL Server 2000 Developer Edtion 開発用およびテスト用限定版
が入っていたのですが、どちらをインストールすればよいのかわかりません。
違いを教えていただけませんか?
一応開発用のテスト環境にいれるのですが、64bitの方が基本ぽい気がしたもので・・


766 :NAME IS NULL:2005/06/14(火) 12:33:01 ID:???
>>764
有料って言っても実質5000円〜6000円くらいですよ。

>>765
お使いのマシンは?64bitって64bit環境用じゃ無いかな?
http://www.microsoft.com/sql/64bit/productinfo/sysreq.asp

767 :765:2005/06/14(火) 13:48:56 ID:FN/Zifsa
>>766
わからないです。
DELL PowerEdge800です。
どこをみればのっているのでしょうか?

768 :NAME IS NULL:2005/06/14(火) 14:02:58 ID:???
>>767
PowerEdge800はPentium2,Celeronって事なので
64bitじゃない方で良いと思いますよ。

769 :765:2005/06/14(火) 14:04:46 ID:FN/Zifsa
わかりましたー
ありがとうございました^^

770 :NAME IS NULL:2005/06/14(火) 17:16:09 ID:fp/EkyCo
コマンドラインですべてのテーブルの.sqlファイルを出力するには
どうしたらよいでしょうか。

771 :NAME IS NULL:2005/06/14(火) 19:54:35 ID:???
>>770
静的にやりたいんか動的にやりたいんかわからんし、
どのレベルまで再現できたらいいのかが分からんのでヒントだけ。

EnterpriseManagerを立ち上げてテーブルの「SQLスクリプトの作成」を実行する様子を
SQLプロファイラでトレースしてみると、どうやればスクリプトが作れるかわかるよ。

772 :NAME IS NULL:2005/06/14(火) 22:05:16 ID:???
>>763
ストリーム処理をDBでどれくらいできるのか、というある意味
ベンチマーク的な感じで取り組んでいますので、ビジネス用途で・・
ってんじゃないですよ^^。ダメだったらダメって事で・・でも
ダメかどうかがわからないので、試してたりしますw

773 :NAME IS NULL:2005/06/15(水) 00:48:23 ID:???
集計関数って自分で作れますか?たとえば

1 | ば
2 | あ
1 | か
2 | ほ

とあったら

SELECT 数字,連結(文字) FROM table GROUP BY 数字
1 | ばか
2 | あほ

を作りたいんです。

1 | かば
2 | ほあ

になってもかまわないんですが、そんな関数を作りたいんです。

774 :NAME IS NULL:2005/06/15(水) 07:15:37 ID:???
2005で作れます

775 :NAME IS NULL:2005/06/15(水) 16:56:41 ID:???
MySQLしか知識が無いのですが、先日からSQLServerをやりはじめました。

質問なのですが、MySQLなどでは、SELECTするときにLIMITを使用して
件数を指定してレコードが取得できますが、
SQLServerではどのようにするのでしょうか?

776 :NAME IS NULL:2005/06/15(水) 17:41:52 ID:???
先頭からの件数だけでよければTOPで。

777 :NAME IS NULL:2005/06/15(水) 19:00:25 ID:???
>>776
先頭からというのはSQLServerのマニュアルで探せたのですが、
n件目から指定件数という場合はどうするのでしょうか?

778 :NAME IS NULL:2005/06/15(水) 19:16:13 ID:???
そういう指定を直接する方法はない。
工夫してなんとかするしかない。

779 :NAME IS NULL:2005/06/15(水) 19:25:06 ID:???
今日、pml-beginでも同じ質問が有ったんだけど。
ttp://blogs.sqlpassj.org/matu_tak/archive/2004/05/18/2337.aspx

780 :NAME IS NULL:2005/06/15(水) 21:51:28 ID:???
以前こんなのを書いた事はあるぞ

select distinct TOP 20 KEY,DATA1 from TABLE as TBL1 WHERE DATA2 LIKE '%hoge%'
   and not exists (select * from (
select distinct TOP 100 KEY,DATA1 from TABLE as TBL1 WHERE DATA2 LIKE '%hoge%'
ORDER BY DATA1,KEY
   ) as TMPTBL where TMPTBL.KEY = TBL1.KEY)
ORDER BY DATA1,KEY

101件目から20件分出るものだった気がする

781 :NAME IS NULL:2005/06/16(木) 19:47:25 ID:S8DRQ4qp
バックアップジョブがたまにコケるんですが、なにか原因として考えられることってあるでしょうか?

782 :NAME IS NULL:2005/06/16(木) 20:29:53 ID:???
>>781
DATとかへのバックアップは相性が悪いとこけるぞ

783 :NAME IS NULL:2005/06/16(木) 22:18:27 ID:J+Ztoauc
うちの会社 sql sv2kで給与やら営業支援やら動かしているんだが
sp4あてるべきか sp3のときはsql スラマーがでてあてざる終えんかったが


784 :NAME IS NULL:2005/06/16(木) 22:59:37 ID:???
SP4の問題はいまんとここれだけ?
http://support.microsoft.com/kb/899761/ja

785 :NAME IS NULL:2005/06/16(木) 23:10:38 ID:???
>>784
なんか別のトラブル(MOM関係)もあるらしいから、
sp4aがでる鴨試練という噂

786 :NAME IS NULL:2005/06/16(木) 23:16:58 ID:???
>>780
こうしたほうが速いんでない?
select * from (
select distinct TOP 20 KEY,DATA1
from (
select distinct TOP 120 KEY,DATA1 from TABLE as TBL1 WHERE DATA2 LIKE '%hoge%'
ORDER BY DATA1,KEY
    ) as TBL1
order by DATA1,KEY desc) t
order by DATA1,KEY


787 :NAME IS NULL:2005/06/17(金) 00:03:44 ID:???
780の方が速いよ

788 :NAME IS NULL:2005/06/17(金) 01:55:55 ID:A+zflxre
100万件目から20件とかだと786の方が速いのかな?

789 :718:2005/06/17(金) 12:24:37 ID:???
>>721
遅レスですまんが、ありがとう

790 :NAME IS NULL:2005/06/17(金) 13:04:19 ID:???
どういたしまして

791 :NAME IS NULL:2005/06/18(土) 08:43:51 ID:???
>>786だとサブクエリの部分で一時的な結果セットが発生してしまうので
行が増えるにしたがって重くなるんじゃないかなあ…
>>780はexistsを使ってるので途中で結果セットが発生しない

速さは一概には判断できないが、少なくとも処理に必要なサーバリソースは
>>780の方が少ないと思う




792 :NAME IS NULL:2005/06/18(土) 10:14:20 ID:???
>>791
>>786も一応exists型に変換できるが、ネストがかなり深くなるな(汗
どっちにしろ、いろいろパターンがあるから、
データとかインデックスの持ち方とか検索パターンとかで変わる可能性あるから
結局のところは全部ためせってこったな(汗

793 :NAME IS NULL:2005/06/19(日) 22:49:54 ID:swxdw9ff

唐突なんですが、相談にのってください。
日々発生する売上情報を使用して処理するトランザクション(ストアドで作成)
があるのですが、通常は5分程度で完了するものが、ある日突然1時間経過
しても終わらない状況となっています。
tempdbを異常なくらい使用していて(100G超)、データファイルの自動拡張が
できずに異常終了したこともあります。
どんな原因が考えられるでしょうか?


794 :NAME IS NULL:2005/06/19(日) 23:07:09 ID:???
デッドロックとか?


795 :NAME IS NULL:2005/06/20(月) 02:54:07 ID:???
>>775 >>780 >>786
こんなのどう?

DECLARE @min_key int; --←キーの型

DECLARE myCursor CURSOR FOR
SELECT TOP 100 KEY FROM table
ORDER BY KEY

FETCH NEXT FROM myCursor
INTO @min_key

WHILE @@FETCH_STATUS = 0
BEGIN
  FETCH NEXT FROM myCursor
  INTO @min_key
END

SELECT TOP 20 * FROM table
WHERE KEY >= @min_key

CLOSE myCursor
DEALLOCATE myCursor

これで、100件目から20件分でるんじゃないかな?計算量2nで。
どんな順序付けで20件だかわからんから使えるシチュエーション限られるが・・・。

796 :795:2005/06/20(月) 02:56:15 ID:???
>>795・・間抜けなことした。ループ無しで良いね。

DECLARE @min_key int; --←キーの型

DECLARE myCursor CURSOR FOR
SELECT TOP 100 KEY FROM table
ORDER BY KEY

FETCH LAST FROM myCursor
INTO @min_key

SELECT TOP 20 * FROM table
WHERE KEY >= @min_key

CLOSE myCursor
DEALLOCATE myCursor

797 :NAME IS NULL:2005/06/20(月) 11:30:30 ID:???
お世話になります、突然申し訳有りません。

http://www.sqlpassj.org/bbs/bbs_disp.aspx?forum_id=1¤t_page=1&disp_mode=2&detail_mode=1&message_id=2259
↑この記事を参考にしてSQLServer2000のアクセスログを監査しようとしてます。

SQL Serverは毎週月曜日朝に起動、毎週金曜日夕方にサービス停止後サーバ機を停止しています。
なので月曜朝に

osql /E /i "c:\auto.sql" /n (上記URLでの例)

を手動で叩く運用を考えています。


ここで1つ問題が有ります。
上記URLのページで言うところの吐き出す監査ログ「c:\kekka.trc」が既に存在している場合、
osql /E /i "c:\auto.sql" /n がエラーで停止してしまう様なのです。


-----

【ログが無い場合(正常終了)】
C:\>osql /E /i "c:\auto.sql" /n
TraceID
-----------
1

(1 件処理されました)

-----
-----

【[ログが既に存在する場合(異常終了)】
C:\>osql /E /i "c:\auto.sql" /n
ErrorCode
-----------
12

(1 件処理されました)

-----


なので吐き出すログが既に存在する場合は手動で退避させて「osql /E /i "c:\auto.sql" /n」を
起動させなければならない状況なのでチョトダサイので、ファイル名を「osql /E /i "c:\auto.sql" /n」を
叩いた時間(例:c:\kekka_200506201130.trc)にしたいのですけど、osqlでファイル名をコントロール
出来ますでしょうか?

出来ない場合は「c:\kekka.trc」のリネームと「osql /E /i "c:\auto.sql" /n」を含んだバッチファイルを
書けばいいかなぁと思うんですけど、もっとカッコイイ運用をされていらっしゃる方は居らっしゃいますでしょうか。


#蛇足ですけど参照記事で
#「 SELECT * FROM :: fn_trace_getinfo(default) 」と書いてある部分は
#「 SELECT traceid FROM :: fn_trace_getinfo(default) 」の方がいい様な気がします。

798 :NAME IS NULL:2005/06/20(月) 22:51:44 ID:???
>>793
そのストアドがバカな設計じゃなければいいんだけどね。
とりあえず、ストアドの中身をトレースしてみたら?
インデックスとかデータ件数とか処理時間とかを気にしながら。

799 :NAME IS NULL:2005/06/27(月) 09:34:16 ID:dqw5VFWT
セキュリティ面なのですが、コピーした(された)MDFファイルを
ほかのコンピュータのSQL Serverでアタッチできないようにするには
どうすればよいのでしょうか?
(パスワードを設定してアタッチするにはパスワードが必要など可能でしょうか?)

800 :NAME IS NULL:2005/06/27(月) 20:30:14 ID:???
>>799
そもそも、MDFをコピーできる時点でセキュリティ面でアウトだと思うが。


801 :NAME IS NULL:2005/06/27(月) 23:11:03 ID:???
>>800に同意だが
どうしてもってならもう内部のデータ全部暗号化でどうだ。
デコード処理通さないとわけわかめにしとけ。
まあプライマリキーぐらいそのままでもいいと思うが。
住所とかIDとかPASSとTELとか名前とかそんなのを暗号化して格納しとけば
例えデータが漏洩しても大丈夫だ。
まあまたくもって現実的な話ではないが。
格納と表示の度にプログラムでエンコ・デコード処理通すのもな・・・


802 :NAME IS NULL:2005/06/27(月) 23:49:34 ID:???
selectにトリガを仕掛けておいて別サーバだったら全テーブルtruncateとかw

803 :NAME IS NULL:2005/06/28(火) 09:27:50 ID:???
>>802
リバースエンジニアリングしようとすると自己破壊するハードウェアみたいなもんやね。

804 :799:2005/06/28(火) 09:40:26 ID:???
>>800 
社内のシステム担当だと可能なんですよ。
そしてMSDEなんか簡単に手に入るんで自分の
スタンドアロン環境で簡単にアタッチなど...
>>801
そうですよね。重要データを暗号化すればと思うのですが、
参照・保存でその都度、複合・暗号ってのも...
標準機能で付いてれば嬉しいんですが。
>>802
なるほど、見られる前に自動消去させるってことですね。
どんな動作になるかちょっと試してみようかなぁ...

お三方ありがとうございます。また何かいい方法があったらお願いします。


805 :NAME IS NULL:2005/06/28(火) 09:47:07 ID:???
> 社内のシステム担当だと可能なんですよ。
と言うのをナントカ出来ないのかな?
実機は隔離してDBのアカウントだけ発行するとか
って、まぁそれが難しいんだとは思うけど。。。


806 :NAME IS NULL:2005/06/28(火) 19:08:09 ID:???
SQL Server 2005 日本語版は、何月ごろに製品版がリリースされる予定か
ご存知でしたら教えてください。

807 :NAME IS NULL:2005/06/28(火) 20:02:07 ID:???
>806
2005/11/7かな
http://d.hatena.ne.jp/aspx/20050608/p2

2005からは標準で暗号化できる
http://www.itmedia.co.jp/enterprise/articles/0410/21/news076.html

やっとROW_NUMBER関数が
http://www.microsoft.com/japan/msdn/sqlserver/sql2005/sql_05TSQLEnhance.asp

808 :NAME IS NULL:2005/06/28(火) 20:31:48 ID:???
SQLServer 7.0 と SQLServer 2000 のT-SQLの相違点を知りたいんですが、
http://www.microsoft.com/japan/msdn/sqlserver/sql2005/sql_05TSQLEnhance.asp
の様な資料はあるんでしょうか。
T-SQLの仕様変更やら追加された関数とかが有れば知りたいです。


809 :NAME IS NULL:2005/06/28(火) 21:14:42 ID:???
>>804=799
MDFファイルを2G超に膨らましておけば
MSDEではアタッチできないぞ。

でもBCPされたらそこまでだけどな。
つか、システム担当の権限はどこまでよ?

810 :NAME IS NULL:2005/06/28(火) 22:17:04 ID:???
>>807
日本語版発売日は発表されてないよね。

811 :NAME IS NULL:2005/06/29(水) 07:33:05 ID:???
>>808
Books Onlineの
- SQL Serverのインストール
-- SQL Server 2000 へのアップグレード:概要
--- 旧バージョンとの互換性
---- SQL Server 2000 と SQL Server Version 7.0


812 :NAME IS NULL:2005/06/29(水) 09:11:20 ID:???
>ROW_NUMBER関数

ほんとにようやくって感じだな……

813 :NAME IS NULL:2005/06/29(水) 09:43:34 ID:???
>>811
-Transact-SQL リファレンス
--Transact-SQLの新しい機能
ってとこで見つかりました。ありがとうー

---

ROW_NUMBERが有れば随分レスの有った >>775 も簡単にできそうだね。

814 :NAME IS NULL:2005/06/30(木) 10:30:10 ID:???
セキュリティの観点からSP3a+MS03-031よりもSP4を宛てた方がいい理由ってなにかあるでしょうか?

815 :NAME IS NULL:2005/06/30(木) 10:40:47 ID:???
SQL2003をインストしたときに設定したパスワードが不明で
SQLサーバー認証のログインが出来ません。
レジストリに書き込まれていると思うのですが
どこに記述あるんでしょうか?教えてください。

816 :NAME IS NULL:2005/06/30(木) 10:47:45 ID:???
ローカルアドミン権限をもつWindows認証アカウントでログオンしてから
該当アカウントのパスワードを変更するというのは?

817 :815:2005/06/30(木) 12:22:03 ID:???
>>816
そんな権限のあるアカウントは持っていません。
他人がインストしたSQLサーバーを勝手に使いたいのです。

818 :NAME IS NULL:2005/06/30(木) 12:30:13 ID:???
>>817
それは「使うな」って事だお^^

819 :NAME IS NULL:2005/06/30(木) 13:35:50 ID:???
>>817
ちょっとワロタw
システム管理者に相談してくださいw

820 :NAME IS NULL:2005/06/30(木) 16:10:42 ID:???
>>815みたいな人間に勝手に使われないようにシステム管理者が日々苦悩してるってのになw

821 :NAME IS NULL:2005/06/30(木) 17:34:14 ID:???
ここがシス管スレだったら>>815は十字砲火にあってるなw

822 :NAME IS NULL:2005/06/30(木) 18:11:37 ID:???
>>815
お前の望むように勝手に使えたら重大なセキュリティホールだね^^
というかお前という奴が重大なセキュリティホールだね^^
というか死ね^^

823 :NAME IS NULL:2005/06/30(木) 18:31:58 ID:???
システム管理者以外がサーバー触りくまっている>>820
会社もスゲーと思うけどなw
レベル低っ!


824 :NAME IS NULL:2005/06/30(木) 19:04:01 ID:???
saパス無しのところもまだまだたくさんありますぜ。

825 :NAME IS NULL:2005/06/30(木) 19:10:27 ID:???
>815
そのバージョンのSQLServerキホン

826 :NAME IS NULL:2005/06/30(木) 22:09:47 ID:???
レジストリにはパスワードなんて書いてないよ
レジストリって平文同然だし

827 :NAME IS NULL:2005/07/01(金) 09:06:57 ID:???
すぐ分かるパスワードなんてパスワードの意味ないしな

828 :NAME IS NULL:2005/07/01(金) 09:33:11 ID:???
ユーザ名:sa
パスワード:無し
これ最強


829 :815:2005/07/01(金) 09:38:38 ID:???
システム管理者の名前と誕生日を入れたらログインできました。ありがとう。

830 :NAME IS NULL:2005/07/01(金) 17:48:24 ID:???
オチはもうちょっと捻って欲しかった

831 :NAME IS NULL:2005/07/01(金) 17:55:04 ID:???
女の子の名前とかね。

832 :NAME IS NULL:2005/07/01(金) 18:50:07 ID:???
パスワードに僕の下の名前を入れたらログインできました
愛されてるみたいです

とか。


833 :NAME IS NULL:2005/07/01(金) 19:58:04 ID:???
システム管理者に肉棒を入れてみたら、パスワード吐きました

834 :NAME IS NULL:2005/07/01(金) 20:05:52 ID:???
うちの会社のsaアカウントパスワードは

iloveyou

835 :NAME IS NULL:2005/07/05(火) 17:14:33 ID:???
scott/tiger

836 :NAME IS NULL:2005/07/05(火) 17:51:32 ID:???
>>835
止めとけ、SQL Serverがクラッシュするぞ。


837 :NAME IS NULL:2005/07/05(火) 18:48:49 ID:cbZxJwk5
教えてください。
拡張子「BAK」のついたデータをいきなり渡されました。
聞けば、「MS SQL Server」のデータだと言ってます。
このデータから、復元ってできるものなのでしょうか?
差分バックアップデータではなさそうなのですが。

838 :NAME IS NULL:2005/07/05(火) 20:21:09 ID:???
>>837
それが完全バックアップを含んでるなら可能。
復元されるデータファイルのはバックアップ時の位置に作られるので
ドライブレターなどの構成をあわせる必要あり。
sa以外のユーザーを使ってたらDB内のユーザーとログインIDの関連付けも必要になる。
データの受け渡しにバックアップイメージを渡すのはスマートじゃないと思うが、
ネットで接続できない場合ほかに適当な手段がないのでわりと使われてる。

839 :NAME IS NULL:2005/07/05(火) 21:50:06 ID:UHwt9kL+
偶然にも便乗質問のようになりますが、
DTSパッケージのサンプルということで、
拡張子がdtsのバイナリファイルを貰いました。

EnterpriseManagerではインポートできないと思うのですが・・・

ググッたところ、DTSデザイナというものが存在するようですが、
当方のSQLServer2000のDeveloper版には無いような・・・

インストール時のオプションで選択しないと駄目なのでしょうか?

840 :NAME IS NULL:2005/07/05(火) 22:05:17 ID:???
>>838
ありがとうございました! 無事復元させることができました。


841 :NAME IS NULL:2005/07/05(火) 22:13:03 ID:???
>>839
1) Enterprise Managerのツリービューの"データ変換サービス"で右クリックして"パッケージを開く"を選択
2) もらった dts ファイルを選択
3) パッケージデザイナ画面が開いて、dts ファイルの内容が表示されるので
  "パッケージ"→"名前を付けて保存"を選択
5. 場所コンボボックスを"SQL Server"に変更して、サーバー、ユーザー名、パスワードを
  入力して"OK"クリック

842 :839:2005/07/05(火) 22:18:02 ID:???
>>841どうも有り難うございます。
四苦八苦していたところでした。
本当にどうも有り難うございました。

843 :NAME IS NULL:2005/07/11(月) 15:41:12 ID:???
>>835
ウチ、マジでソレなんやけどw

844 :NAME IS NULL:2005/07/11(月) 15:49:06 ID:???
>>843
( ´д)ヒソ(´д`)ヒソ(д` )

845 :NAME IS NULL:2005/07/11(月) 16:29:29 ID:???
スコッとタイガーっ!!
ってなんかのキャッチコピーみたいですね。

846 :NAME IS NULL:2005/07/11(月) 20:35:38 ID:???
>>845
もらくる


847 :NAME IS NULL:2005/07/13(水) 09:53:20 ID:???
ぼらくる

848 :NAME IS NULL:2005/07/13(水) 10:31:59 ID:cwIOx3kC
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。


849 :NAME IS NULL:2005/07/13(水) 12:09:14 ID:???
18 名前:NAME IS NULL[] 投稿日:2005/07/12(火) 22:11:06 ID:bmQRX1mO
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、分る方いっらしゃいますでしょうか。

850 :NAME IS NULL:2005/07/13(水) 12:09:46 ID:???
937 名前:NAME IS NULL[sage] 投稿日:2005/07/13(水) 10:33:46 ID:???
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。

マルチしすぎ死ね

851 :NAME IS NULL:2005/07/13(水) 12:13:42 ID:???
とにかく教えてくれよ、>850以外の方

852 :NAME IS NULL:2005/07/13(水) 12:18:50 ID:Kkt8JXUa
>>851
お前が調べた事を書いてくれ。
話しは、それからだ。

853 :NAME IS NULL:2005/07/13(水) 12:23:11 ID:???
>>851
どんな情報が必要なの。
マルチ扱いされているが、質問レスに書いた通りだが。

フォームからやテーブルを直接開いてレコードに修正加えて保存しようとしても、
データの競合で変更できないんです。

854 :NAME IS NULL:2005/07/13(水) 12:23:44 ID:???
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。

855 :NAME IS NULL:2005/07/13(水) 12:25:08 ID:???
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。

マルチしすぎ死ね

856 :NAME IS NULL:2005/07/13(水) 12:28:47 ID:???
だめだこりゃ。やっぱここの住人は癖がありすぎだ。

857 :NAME IS NULL:2005/07/13(水) 12:32:56 ID:???
会社のネットワークで、
SQL2000サーバーに各端末から.MDBでデータ処理しています。

テーブルのレコードを変更したとき、他ユーザーが開いていますなどと称して、
競合で変更が更新されないことがあります。もちろん競合はない筈でも、この
メッセージがでて変更ができないことがあります。

この不具合の原因について、教えていただけないでしょうか。

858 :NAME IS NULL:2005/07/13(水) 12:34:37 ID:???
  ∧ ∧     ┌─────────
  ( ´ー`)   < シラネーヨ
   \ <     └───/|────
    \.\______//
      \       /
       ∪∪ ̄∪∪

859 :NAME IS NULL:2005/07/13(水) 12:39:18 ID:???
久々に見た

860 :NAME IS NULL:2005/07/13(水) 20:18:51 ID:???
プロファイラ使え…
ヒントがなさ過ぎる。

861 :NAME IS NULL:2005/07/13(水) 22:57:50 ID:UXfmrCnT
すみませんが
主キー/オートナンバー型のフィールドを1から戻すにはどうしたら良いのでしょうか?
テーブル自体作り直すしかないのでしょうか?

862 :NAME IS NULL:2005/07/13(水) 23:05:02 ID:???
>>861
データを全部消しても良いならTRUNCATE

863 :NAME IS NULL:2005/07/13(水) 23:30:32 ID:???
>>861
BooksOnlineでDBCCとIDENTITYの呪文を唱えながら、探してみてください。

864 :861:2005/07/13(水) 23:39:03 ID:UXfmrCnT
自己レスです。

とりあえず今触ってたら一度データを全削除しオートナンバーを解除してテーブル保存。
再度オートナンバーにしたら直りました。

>>862,863
TRUNCATEもDBCCもよくわかりませんので調べてみたいと思います。
ありがとうございました。

865 :NAME IS NULL:2005/07/16(土) 07:54:43 ID:???
TRUNCATEも知らんうちから2chに出入りするのは
その場しのぎの断片的な方法しか得られず
百害あって一利なしだぞ。

まずBooksOnlineを読め。
それが難しすぎるというんだったらおとなしくまず
参考書の一冊でも買ってきてそれを読んでから来い。

866 :ISNULL( NAME,'初心者' ):2005/07/17(日) 01:59:03 ID:I4aojghx
クエリアナライザで
LEFT OUTER JOINを使用するSQLだと待機状態になり結果が返ってくるまで
かなりの時間がかかるのですが(結合条件は間違ってはいないと思います・・)、
UNIONを使用すると1分ほどで結果を得られます・・・
UNIONのほうが処理としては早いのでしょうか?


867 :NAME IS NULL:2005/07/17(日) 02:23:11 ID:???
>>866
LEFT OUTER JOINをUNIONで代用できるのか?
条件にもよるから、どんなSQLを実行したのかUPしないとなんともいえない。

868 :NAME IS NULL:2005/07/17(日) 13:56:51 ID:???
インデックス無し疑惑の臭いがプンプンするぜ…


869 :NAME IS NULL:2005/07/20(水) 20:13:31 ID:c8nDa3oN
2ch初心者なので不備があるかもしれませんが、教えて下さい。
知りたいのはSQL-DMOなのですが(このスレでいいのでしょうか?)SQL-Server7.0時代では
ちゃんと動作していたアプリがSQL-Server2000にアップした所動かなくなってしまいました。
DMOのヘルプも参照したのですが 何分英語なのと 何が変わった?かが掴めず
Methodも存在しているようでエラーは返ってこないのですが 取得される値がおかしいのです。
取得したい値はユーザー毎のPermissionでListUserPermissionsよりGetCountしてそれぞれの
Permissionを取得しているのですが、特定のユーザーに「SELECT,INSERT」の権限を設定しても
GetCountで1しか返してきません。権限の内容を取得すると「SELECT」でした。データベースへ直接
ストアド(sp_helprotect)で調べるとちゃんと「SELECT,INSERT」も許可されています。
一体何が原因なのでしょう?心当たりがある方いらっしゃいませんか?

870 :NAME IS NULL:2005/07/21(木) 09:39:50 ID:???
>>869
角度とか

871 :NAME IS NULL:2005/07/21(木) 09:50:08 ID:???
最近、タスクマネージャでsqlserv.exeのメモリ使用量が400メガくらいとデカい。
数週間前までは30〜80メガくらいしかいかなかったのですが。
レコードを追加してるのでもなく、サービスを開始してると次第に上がっていく感じです。

何か、疑うとこあるでしょうか?
Sql2000+sp2です。

872 :NAME IS NULL:2005/07/21(木) 12:37:36 ID:???
>>871
「感じ」じゃ分からんだろうからシステムモニタを使って監視してみたら。

873 :NAME IS NULL:2005/07/21(木) 13:21:24 ID:???
すみません質問です。
sqlldrでcsvファイルを読み込んでいるのですが、
csvファイルが「A,B,C,D,E」となっていて
対象テーブルは「C,D」しか項目が無いのです。
どのようにctlを記述すれば良いのでしょうか。
csvファイルを変更するっていうのは仕様的に駄目みたいです。

検索しても、sqlldrについては大抵基本形しか載ってないので
よくわかりませんでした。
教えてください。宜しく御願いします。

874 :NAME IS NULL:2005/07/21(木) 13:36:11 ID:???
>>873
http://www.ne.jp/asahi/hishidama/home/soft/oracsv/index.html

875 :NAME IS NULL:2005/07/21(木) 13:55:01 ID:???
Oracle?
SQLLDRってSQLServerにもあった?

876 :873:2005/07/21(木) 14:24:37 ID:???
>874
ありがとうございます。
でも、このツールでは基本形しか作成してくれません。
(テーブル項目を記述して、その通りにctlファイルを作成するだけっぽい)

>875
ありがとうございます。
オラクルに逝ってきます。

877 :NAME IS NULL:2005/07/21(木) 18:17:44 ID:RfIxcPDr
SQLServer8?のデータベース1個を丸ごとMSDE(SQLServer7?)環境に
お互いのマシンは通信できる環境にないので、
SQLスクリプトかダンプファイルを出力するなどして
移行したいのですが、可能でしょうか?
試しにSQLスクリプトを吐き出させたのですが、MSDEの方で走らせるとエラーが
出てしまいます。。
Oracleは経験あるのですが、SQLServerは長所新車です。。。
よろしくお願いいたします。



878 :NAME IS NULL:2005/07/21(木) 18:34:05 ID:???
> 試しにSQLスクリプトを吐き出させたのですが、MSDEの方で走らせるとエラーが
> 出てしまいます。。

どんなテーブルを作成しようとしてどんなエラーが出田野出消化。
経験者なら経験者らしい質問をしようぜベイビー。

879 :877:2005/07/21(木) 18:53:27 ID:RfIxcPDr
すみません。
適当にやってたらなんとか関数以外は全部コピーできました。
でもSQLServer7には関数がないらしいですね!
関数を呼び出すプログラムの部分は全て書き直さなければいけないんでしょうか。。。
値を返すストアドとか作れるのでしょうか?

880 :877:2005/07/21(木) 19:42:51 ID:RfIxcPDr
あ、returnでできました。どうもおさわがせしました。

881 :NAME IS NULL:2005/07/21(木) 22:17:34 ID:???
MSDE1.0なんか持ち出してくるから苦労するんじゃないの。
なんでMSDE2000を使わないんだ?

882 :NAME IS NULL:2005/07/22(金) 16:27:44 ID:???
ALTER TABLE で、列を追加する場合に、任意の位置に列を追加する方法
はありませんか?

ALTER TABLE table1 ADD col1 integer

のようにやると、当然ながらテーブルの末尾に追加されてしまいます。

任意の位置に列を追加する方法があれば教えてください。
よろしくお願いします。

883 :NAME IS NULL:2005/07/22(金) 16:40:24 ID:B8s/LCPu
SQL Serverのデータ分析および作成したレポートの共有を行いたい
のですが、どのような方法があるのでしょうか。

Excel Add-in for Analysis Servicesはクライアント機能のみで
レポート共有は出来ないと思われます。

Microsoft以外の他社製BIツールを使わずに実現する方法について
アドバイスもしくはヒントを頂ければありがたいです。

884 :NAME IS NULL:2005/07/22(金) 16:58:40 ID:???
>>882
ALTER TABLEではムリ。テーブルを再作成するしかない。
EnterpriseManagerを使えば可能(これも内部でテーブルを再作成している)

885 :NAME IS NULL:2005/07/22(金) 19:53:34 ID:???
>>883
Visual Studioで開発したレポートをReporting Servicesの標準機能で共有。
またはWindows Sharepoint ServicesのBI用Webパーツを使う。とか。

886 :NAME IS NULL:2005/07/22(金) 22:53:35 ID:V0HvoT84
どなたかsqlの実装の仕方教えてください


887 :NAME IS NULL:2005/07/22(金) 23:26:21 ID:???
実装ってDBMSをつくるのか?PostgreSQLのソースでも見ろ。

888 :NAME IS NULL:2005/07/22(金) 23:49:09 ID:???
SQLServerで
backup database データベースファイル名 to disk = `c:¥backup¥aaa.dat` with init
ってスクリプトでDATファイルを取ったんですよ

でもね、これからMDFとかLDFとか復旧させる方法がわからないんですよ。

おしえて、エロイ人!

889 :NAME IS NULL:2005/07/22(金) 23:53:34 ID:???
>>888
RESTORE

890 :888 ◆Upy4wcs9SI :2005/07/23(土) 01:11:51 ID:???
RESTORE FILELISTONLY FROM DISK = 'C:\xxxxx.dat'

で情報がとれないっす、たすけて、エロイ人!


891 :NAME IS NULL:2005/07/23(土) 09:23:31 ID:???
Enterprise Managerでバックアップからのリストアとかしてはどうか。

892 :NAME IS NULL:2005/07/23(土) 12:13:52 ID:???
>>886
本を読んだ方がいいよ。
おすすめは「現場で使えるSQL」。

他にはhttp://www.microsoft.com/japan/SQL/techinfo/selfstudy/Self_doc.asp
開発編
5-1. Transact-SQL を使用したデータベースの基本操作
5-2. Transact-SQL を使用したデータベースの基本操作


893 :NAME IS NULL:2005/07/23(土) 12:48:28 ID:d4eNuGOv
http://www.itmedia.co.jp/enterprise/articles/0507/20/news062.html
MS、SQL ServerとVisual Studio新版に合わせた新認定プログラムを計画
Microsoftは認定資格試験のプログラムを改変する。
現在の技術者中心のプログラムから、より一般的なものに変わる予定。(IDG)
米Microsoftは11月に予定されているSQL Server 2005とVisual Studio 2005のリリースに合わせて認定プログラムの変更を準備中だ。
ミネアポリスで開催されたWorldwide Partner Conferenceで、Microsoft Learningグループのマネジャーが、
デベロッパーおよびデータベースエンジニア向け認定プログラムの変更について述べ、
技術者中心の認定プログラムから、より一般的な認定プログラムに変わる予定だと語った。
Microsoftは9月に試験の名称を公表し、新しい認定のための準備ガイドとアップグレードパスに関する情報をリリースする予定。
SQL Server 2005とVisual Studio 2005が一般発売されればパートナーと顧客は準備を始めることができる、とバルバーノ氏は付け加えた。

これどうよ。

894 :NAME IS NULL:2005/07/23(土) 15:16:40 ID:???
>>893
資格取得者向けにMSDN特別割引制度とかアフィリエイトプログラムでもあれば考えてやってもいいが。

895 :NAME IS NULL:2005/07/23(土) 18:29:38 ID:YLKzAIbs
>>894
ですから資格としてどうなのかなあって事ですので

896 :NAME IS NULL:2005/07/23(土) 21:43:23 ID:???
取りたきゃ取ればいいんじゃん
それを評価する立場の人間はこんなスレにはこないだろう

897 :NAME IS NULL:2005/07/24(日) 02:51:14 ID:???
そういう話じゃなくて
取って意味があるのかどうか、みたいな話では。

と、MCPか何か取らないと来年も昇級なしですよ、と言われた漏れは思っています。

898 :NAME IS NULL:2005/07/24(日) 08:11:52 ID:???
意味があるかどうかはそれぞれの環境次第じゃねえの。

899 :NAME IS NULL:2005/07/24(日) 08:43:41 ID:???
だから上の人間が資格を重要視するような環境ならば取ればいいじゃん、って事でしょ
うちみたいな、資格を取ろうと結局年功序列な環境では取るだけ金が勿体無い。
つかベンダー資格は全般的に高すぎだよなぁ

900 :NAME IS NULL:2005/07/24(日) 09:04:38 ID:???
意図せず900げと

901 :NAME IS NULL:2005/07/24(日) 09:57:19 ID:U5TivVQp
SQL Server Certified Technology Specialistsは
データベース管理者、
データベース開発者、
ビジネスインテリジェンス開発者
としての認定を得ることができる。

あとはMCAやDB/2エンジニアのような初級基礎レベルのMCPがあるのかどうか。


902 :NAME IS NULL:2005/07/25(月) 14:19:01 ID:TRMXkurN
ちっともわからん。

ASPじゃなくて、ストアドでbasp使ったメール送信プログラムを作ってと言われたんだけど
何がなんだか…。
ほんの数ヶ月前まで、ストアドって何?だったのに、無茶苦茶な。

でも、やるしかないので、検索しながらやってます。
ttp://www.bea.hi-ho.ne.jp/byoko/bnewslog22.html
ここらあたり読んではみたものの…

何から始めればいいのかもわかりません。
だれか、助けてください…。

903 :NAME IS NULL:2005/07/25(月) 14:32:26 ID:???
>>902
助けてやるからストアドって何なのか説明よろ

904 :902:2005/07/25(月) 14:34:22 ID:TRMXkurN
ストアド=ストアドプロシージャー
↑って共通語じゃなかったんだ_| ̄|○
ごみん。

905 :NAME IS NULL:2005/07/25(月) 14:43:54 ID:???
いや、それは知っているけど、単にストアドプロシージャがよく分からないだけ。

906 :NAME IS NULL:2005/07/25(月) 14:49:53 ID:???
T-SQLのステートメント内でメールを飛ばすという要件定義がおかしいんじゃねえの。

baspに拘らないならこういうのがあるよ。
http://support.microsoft.com/?scid=kb;ja;312839&spid=2852&sid=global

907 :NAME IS NULL:2005/07/25(月) 15:09:26 ID:dGM+1vOZ
SQL Server2000使ってます。
あるDBに存在する全ての表の行数を一発で取得できる様な物(ストアドプロシージャとか)は標準では無いのでしょうか。

select name from sysobjects where xtype='U' group by name order by 1

で取ってきたテーブル名の一覧をfetchで

select count(*) 行数 from [テーブル名]

に突っ込んで行こうと頑張ってみたんですけど、エラーで動きません。
(構文が判ってなかったりします…内容は次の発言で。)

908 :907:2005/07/25(月) 15:09:42 ID:dGM+1vOZ
Create Procedure PR_user_tables
AS

drop table user_tables;

create table user_tables
(テーブル名 varchar(128),行数 int);


Declare @ChvTable varchar(128)
Declare @CurTables Cursor

Set @CurTables = Cursor For
select name from sysobjects where xtype='U'

Open @CurTables
Fetch Next From @CurTables Into @ChvTable

While (@@FETCH_STATUS = 0)
Begin
insert into user_tables (テーブル名,行数) values (@CurTables,select count(*) from @CurTables);

Fetch Next From @CurTables
Into @ChvTable

End

Close @CurTables
Deallocate @CurTables

select * from user_tables;

909 :907:2005/07/25(月) 15:12:02 ID:dGM+1vOZ
恐らく

Begin
insert into user_tables (テーブル名,行数) values (@CurTables,select count(*) from @CurTables);

の辺りでエラーが起きていると思います。

サーバー : メッセージ 16949、レベル 16、状態 1、プロシージャ PR_user_tables、行 21
変数 '@CurTables' はカーソル変数ですが、カーソル変数が無効なところで使用されています。

とか言われました。
標準のストアドが有ったらいいんですけど、無かったら↑がどうにか動くようにならないでしょうか。

910 :NAME IS NULL:2005/07/25(月) 15:13:17 ID:???
>>902
やったことないけど、sp_OACreate辺りで何とかなるかもね。
でも、>>906が言うとおりストアドからメールを送信したい、って
要件が変だと思うが。。。
ムリにストアドでやる処理ではないんぢゃないのかなぁ。

911 :902:2005/07/25(月) 15:22:38 ID:TRMXkurN
なんでも、メールのヘッダー情報をalternativeにして、
HTMLメールを送りたいらしいんだけど、
既存のxp_sendmailじゃ送れる文字情報が足りない?のかな?

>>910
sp_OACreateとか、sp_OAMethod使うみたいな事を聞いてます。

912 :NAME IS NULL:2005/07/25(月) 16:19:10 ID:???
>>907
一発で取得できる方法はちょっと判らないけど、出してくれたストアドを修正してみた。
3箇所コードを追加、1箇所コードを削除ね。

CREATE Procedure PR_user_tables
AS

drop table user_tables;

create table user_tables
(テーブル名 varchar(128),行数 int);

Declare @ChvTable varchar(128)
Declare @CurTables Cursor

Set @CurTables = Cursor For
select name from sysobjects where xtype='U'

--追加
DECLARE @SQL NVARCHAR(4000)

Open @CurTables
Fetch Next From @CurTables Into @ChvTable

While (@@FETCH_STATUS = 0)
Begin

--削除
--insert into user_tables (テーブル名,行数) values (@CurTables,select count(*) from @CurTables);

--追加
SET @SQL = N'INSERT INTO user_tables(テーブル名,行数) SELECT @table, COUNT(*) FROM ' + @ChvTable
EXECUTE sp_executesql @SQL, N'@table VARCHAR(128)', @table = @ChvTable

Fetch Next From @CurTables
Into @ChvTable

End

Close @CurTables
Deallocate @CurTables

select * from user_tables

913 :907:2005/07/25(月) 16:38:27 ID:???
>>912
早速のご教示有り難う御座います!
追加して頂いた部分を読み返すにつれ吐き気と眩暈を禁じ得ません…。orz

ご教示頂いた部分についてはまだ理解は出来てませんが、
user_tablesをselectするとDB内の各テーブルをcountした集計を取得できました!!

#最後の行の select * from user_tables だけストアド内で動かないので削りました。

有り難う御座いました!!ワショーイ!

914 :902:2005/07/25(月) 19:01:26 ID:TRMXkurN
とりあえず、メール送信はできました…
exec @rbasp = sp_OACreate 'Basp21', @basp out
exec @rbasp = sp_OAMethod @basp,
            'SendMail',
            @basp_msg out,
            @mail_sv,
            @from ,
            @send_to ,
            @subject ,
            @body ,
            @attachments
exec sp_OADestroy @basp
set @basp = 0
(色々省略)

ただ、こいつにContent-Typeを設定したいのですが、
どこに書いたらいいかもわかりません…。

ASPと同じく、@send_toにくっつけるの??

915 :NAME IS NULL:2005/07/25(月) 21:31:35 ID:???
関係ないが個人的にはバグが多いbaspよりCDOの方がオススメ

916 :NAME IS NULL:2005/07/25(月) 21:45:15 ID:???
select a.name, b.rowcnt from sysobjects as a
inner join sysindexes as b on(a.id = b.id )
where a.type = 'U' and b.status in (2050, 18450 )
order by a.name


917 :NAME IS NULL:2005/07/25(月) 23:46:35 ID:jRAimYLf
masterってハードウェアが異なるマシンで復元するとダメなの??
後から一部の設定をポチポチ直すことはできないのかな。

SQL Server自体の設定(ローカルのインスタンスで
右クリック:プロパティ で得られるような情報)の移行めんどくさくない?

誰かこんなモヤモヤ感を吹き飛ばしてくださいm(_ _)m

918 :NAME IS NULL:2005/07/26(火) 09:36:26 ID:???
masterの再構築コマンドが有ったような無かったような。
masterのバッくっぽを忘れたときはそれでmasterを再構築するとかナントカ

記憶がテキトーなのでbooksOnlineでかくにんしてくだふぁい!

919 :907:2005/07/26(火) 10:15:22 ID:???
>>916
sysindexes表にrowcount列という物が有ったんですねー…調べきれてませんでしたすみません。

にしても素晴らしい。
ストアドプロシージャで表にガツガツinsert(して出来上がった表をselectする処理)が3分掛かってたのが
このSQL文だと0.5秒で出来ちゃいますね(^^; 貴重なSQLをご提供頂きまして有り難う御座います♪

920 :NAME IS NULL:2005/07/27(水) 19:12:54 ID:cYgEO8Aj
ストアドで、指定したファイルを1行ずつ読み込みたいんですが
どうかいたらいいのでしょうか?

DO until (sp_OAMethod @handle, 'AtEndOfStream')
 /* ReadLineメゾッド・・・1行ずつ読み込む*/
 exec @hr = sp_OAMethod @handle, 'ReadLine', @HtmlAll out
loop

もちろんエラーでます…

921 :NAME IS NULL:2005/07/27(水) 20:46:13 ID:???
出来ました。
正しくは、exec @hr = sp_OAMethod @handle, 'ReadLine', @HtmlLine outでした(^-^;

次は、1行ずつ新規ファイルに書き込みか…

922 :NAME IS NULL:2005/07/28(木) 10:17:49 ID:???
>>920-921
えっと、それはストアドプロシージャでやらなければならない処理なのでしょうか。
もしそうだとしても、そういう処理をやるCOMコンポーネントを作って、それをストアドから
呼び出すほうが良いのではないでしょうか。

923 :NAME IS NULL:2005/07/28(木) 10:29:43 ID:???
>>922
sp_OACreateで、どのようなActiveXを生成しているか示さずに
いきなりsp_OAMethodが動かん、って言ってるワケだから
>>920-921はただの独り言だろ。相手にしなさんな。

924 :NAME IS NULL:2005/07/29(金) 15:44:45 ID:+Y0MBKhq
すでに追加済みのデータ(VARCHAR)のデータが重複しているかどうか
調べ、重複してれば対象となるデータの削除をしたいのですが、
うまく行きません。どなたか、教えてください。
もしくは、MS SQLServerに関するTips等を
公開してるHPが有りましたら誘導お願い致します。

925 :NAME IS NULL:2005/07/29(金) 16:40:22 ID:???
>>924
テーブル構造を出して。
重複しているカラムとは別にそのレコードを特定するカラムが存在しないとムリポ。
>MS SQLServerに関するTips等を。。。
MS SQLServerではなくSQLにまつわる話だわな。

926 :NAME IS NULL:2005/07/29(金) 18:23:10 ID:???
テーブル構造ですが、
ID    (アイデンティティー化してある。一意の番号)
データ1(VARCHARのテキストデータ)
データ2(VARCHARのテキストデータ)
データ3(VARCHARのテキストデータ)
データ削除フラグ1
データ削除フラグ2
データ削除フラグ3

初期のデータ追加の際にデータ重複をチェックしてから、
追加ということをしてなかったせいで・・・orz

宜しくお願い致します〜。

927 :NAME IS NULL:2005/07/29(金) 19:00:33 ID:???
よくわからんけど
1.ある行の データn と 違う行の データn が同じだと削除
2.ある行の データn と 違う行の データm が同じだと削除
3.ある行の データ? と 違う行の データ? が同じだと削除

自分で書いててワケ分からなくなってきたので止めます。

「重複してれば対象となるデータの削除をしたい」も、削除する・しないの基準とかあるのかな?IDが若い方を残す、とか。

delete from table1 where isexists
(select data1 from table1 B where table1.data1=B.data1
and table1.ID<B.ID)

みたいな?
漏れも初心者なのでおかしかったら教えてください>だれか


928 :NAME IS NULL:2005/07/29(金) 19:51:27 ID:???
>>924 です。
データ1の中で重複があれば、若いIDの方のデータを残すを
データ2、データ3をチェックしたいのです。

>>927 の
delete from table1 where isexists
(select data1 from table1 B where table1.data1=B.data1
and table1.ID<B.ID)
を改良すればいけると思います〜。
どうもありがとうございます。

929 :NAME IS NULL:2005/07/29(金) 19:57:26 ID:???
>>928
SQLがどうたら言う前に日本語をなんとかしろや。

>データ1の中で重複があれば、若いIDの方のデータを残すを
>データ2、データ3をチェックしたいのです。
なんのこっちゃ。

930 :NAME IS NULL:2005/07/29(金) 23:32:16 ID:TptMJ2aG
1000!

931 :NAME IS NULL:2005/07/29(金) 23:35:24 ID:???
>>924 です。
うわぁ〜〜〜恥ずかしい・・・・
うまくできそうで急いでたらひどい日本語かいてる・・・orz

>データ1の中で重複があれば、若いIDの方のデータを残すを
>データ2、データ3をチェックしたいのです。
データ1の中で重複があれば、若いIDの方のデータを残す、
そして同様にデータ2、データ3もチェックしたいのです。

これでも変ですかねぇ(汗汗

932 :NAME IS NULL:2005/07/30(土) 00:39:50 ID:???
>>931
日本語で判りづらいかな、と感じたらサンプルの元データと期待する結果を
書いたほうがいいよ。

933 :NAME IS NULL:2005/07/31(日) 00:02:43 ID:???
一回それが出来ればいいのかな?
ならば安直に同じ構造のテーブルを作ってデータ1,2,3にunique制約をつけて
カーソルでも使ってエラーを無視しながら一行ずつデータをコピーすればいいかと。

そうでなければselect min(id),データ1 group by データ1 とかすれば
各データ毎に残すべきidが取得できるから
同じデータでidがそれより大きいものは消す、とでもすればいかが?

934 :933:2005/07/31(日) 00:03:58 ID:???
ってもう解決気味だったか。まぁいいや

935 :NAME IS NULL:2005/07/31(日) 19:01:17 ID:kegvtZTR
SQLServer7をWindows2003Serverで動かしているひといます?
開発用なんだけど大丈夫かな?
もうWindows2000Server売ってないだよね。

936 :NAME IS NULL:2005/07/31(日) 19:11:36 ID:???
w2kはwindows msdn版とかで手に入るんじゃないカニ

937 :NAME IS NULL:2005/07/31(日) 22:54:24 ID:P0gsa3YZ
下のように、UNIONを使って前のSELECTの結果を後のSELECTのFROMに指定することが
できないようです。(テーブルBが見つからないというエラー)
同じようなことをSQL一文のみで一時テーブルも使わずに実現できないでしょうか?

(SELECT * FROM A WHERE xxxx) AS B
UNION
SELECT * FROM B WHERE xxxx

938 :NAME IS NULL:2005/08/01(月) 04:25:32 ID:???
>>937
何がしたいんだかわからないが、普通にこれじゃなぜダメなのか?
SELECT * FROM A WHERE xxxx
UNION
SELECT * FROM B WHERE xxxx

こういう構文にすればサブクエリは使えるが意味あるの?
select * from (SELECT * FROM A WHERE xxxx) AS B
UNION
SELECT * FROM B WHERE xxxx

939 :NAME IS NULL:2005/08/01(月) 04:53:58 ID:???
UNIONでつなぐ意味があるのかな。UNION ALLなら判るんだけど。
どういう状況でそんな処理が必要なのか興味あるな。

940 :937:2005/08/01(月) 07:46:14 ID:???
>>938
> こういう構文にすればサブクエリは使えるが意味あるの?

その構文でも同じエラーになります・・・・
SQL Server 2000 SP3ですけど。

>>939
その疑問はよく分かります。
実際は * や xxxx には複雑なものが入ります。
ただしそれは質問には関係ないので、聞きたいことが明確に分かるよう
最小形にしたものが質問の内容でした。


941 :NAME IS NULL:2005/08/01(月) 13:24:19 ID:???
>ただしそれは質問には関係ないので、聞きたいことが明確に分かるよう
>最小形にしたものが質問の内容でした。

つまり最小形にする段階でさらになにか間違ってるということだね。

942 :NAME IS NULL:2005/08/01(月) 21:35:46 ID:???
ある結果セットと、さらにその結果セット内の一部をUNIONにするって
何をしたいのか全然分からんのだけど?
あとSQL一文のみとか一時テーブル使わずに、とかの縛りの理由も聞きたい。

943 :937:2005/08/02(火) 00:23:38 ID:AOPF3Fnf
>>942
例えば次のようなテーブルにて「10000よりも大きい値について、
その値とその値を2倍した値の結果セットを求める」というような感じです。
いろいろな方法があると思いますがUNIONを使う方法で試したときに
エラーになったので質問しました。

TestTable
col1
------------
5000
12000
14000

ResultSet
col1
------------
12000
24000
14000
28000

まず単純に考えると・・・
SELECT col1 FROM TestTable WHERE col1 > 10000
UNION
SELECT col1 * 2 FROM TestTable WHERE col1 > 10000

同じような処理があるので次のように考えて・・・・
SELECT col1 FROM (SELECT col1 FROM TestTable WHERE col1 > 10000) AS T
UNION
SELECT col1 * 2 FROM (SELECT col1 FROM TestTable WHERE col1 > 10000) AS U

同じクエリの部分を一つにして・・・・
SELECT col1 FROM (SELECT col1 FROM TestTable WHERE col1 > 10000) AS T
UNION
SELECT col1 * 2 FROM T

しかし、「オブジェクト'T'が見つかりません」エラーが出ました。
そこでなぜ駄目なのかなーと疑問に思ったのです。

他にも方法があると思いますが、その方法を知りたいのではなく
これがなぜエラーになるのか知りたかったのですが・・・


944 :NAME IS NULL:2005/08/02(火) 01:22:48 ID:???
unionってそもそも2つの別々の結果をひとつにするのが目的だから、
一緒にするってのが根本的に間違ってる気がする。

945 :NAME IS NULL:2005/08/02(火) 02:20:59 ID:???
>>943
サブクエリやその別名の対する考え方がまちがっている。
そういう使い方は文法上できないというのが答え。
UNIONの下段のSELECT命令は上段SELECT命令の内容に左右されない、だから下の段では
サブクエリでは無く実際のテーブルやビューのTを参照しそれが無いというエラーになる。
そもそもサブクエリに別名をつけていてもそこで実際に中間の結果セットが
作られるかどうかの保証は無い。実際の実行プランはプランナに左右される。
最初のクエリで正解。実行計画によってはあなたが期待した動きをしている可能性もある。
あとUNION ALLでなくUNIONを使う必要があるかはよく検討するべき。

946 :937:2005/08/02(火) 07:37:00 ID:???
>>944-945
よく分かりました。ありがとうございます。

947 :NAME IS NULL:2005/08/02(火) 19:54:35 ID:IqfK276y
ストアドプロシージャで、大量のOpenTextFileを実行させると、
255ファイル目で、正常にオープン出来なくなります。
(戻り値=10077)

現在、3000ファイルをオープンさせようとしているのですが、
どうしたらいいでしょうか…

948 :NAME IS NULL:2005/08/02(火) 20:04:59 ID:???
SQL Server 2005の SQLCLRのクラスライブラリに関する
ドキュメントが見当たらん。どこにあるんだ??
Books Online探しても見つからねえ・・・orz

949 :947:2005/08/02(火) 20:21:10 ID:IqfK276y
>>947

ちなみに、1つ前のOpenTextFile後のCloseは、
正常に閉じれています。

950 :NAME IS NULL:2005/08/02(火) 20:39:48 ID:???
>>947
それって本当にストアドで読み込む必要があるの?
vbsでもperlでもいいから、外部プログラムで1ファイルにまとめてから
SQLに渡したほうが楽そうな気がする。

951 :NAME IS NULL:2005/08/04(木) 00:10:21 ID:???
今更かもだけど
http://support.microsoft.com/?kbid=888799
って酷くね?
http://support.microsoft.com/kb/887974/
FIX:動的なカーソルでフェッチと、 SQL Server 2000 Service Pack 3 に予期しない結果が発生します。
とか喰らってんだけど、

予期しない結果を発生するモノを想定してナニを書けば良いのか悩んでおりますw

952 :NAME IS NULL:2005/08/04(木) 07:11:13 ID:???
>>951
>>この修正プログラムを適用した後に、コンピュータを再起動するべきではありません。

( ゚д゚)?再起動したら元に戻っちまったりして?

953 :NAME IS NULL:2005/08/04(木) 09:43:20 ID:???
つまり,電源の切断が禁止になるパッチということだな。

954 :NAME IS NULL:2005/08/04(木) 10:58:49 ID:???
相変わらず間抜けだな、MSの自動翻訳。
You do not have to restart → 再起動する必要はありません。
だろ、普通…

955 :NAME IS NULL:2005/08/04(木) 11:26:47 ID:???
まぁhave to と have not to、
must toとmust not toは漏れも結構悩んだよ。






中学生の時だけど・・・

956 :NAME IS NULL:2005/08/04(木) 13:19:36 ID:???
>>955
何の自慢?(w

957 :NAME IS NULL:2005/08/04(木) 14:32:05 ID:???
>>955は優秀な翻訳猿人

958 :955:2005/08/04(木) 14:41:08 ID:???
いや、MSの翻訳エンジンは中学生並じゃねーのかと!

959 :NAME IS NULL:2005/08/04(木) 17:39:35 ID:t9Obyxtq
ADOの話だったりしますが、以下の件についてご存知の方がいましたら、教えてください。
ADODB.Commandオブジェクトでパラメータの数が不定な場合はどうすればいいんでしょうか。
たとえば以下のような感じのSQL。

select * from foo where id in (?)

このとき、?の部分に来るパラメータの数が一定ではない場合です。上記の書き方だと、
パラメータはひとつしか渡せないのですが、パラメータはひとつの場合もあれば、三つの
場合もあります。なんかうまい方法は無いでしょうか。

よろしくお願いします。

960 :NAME IS NULL:2005/08/04(木) 17:52:37 ID:???
>>959
テーブル名可変の場合、だけど、何かもっと上手い方法が有るんじゃないか、
と思いつつ、ストアドの中で

set @sql=N'select * from ' + @テーブル名 + ';'
sp_executesql @sql文

ってやってるなぁ。in句の場合は一時テーブルに入れてしまって
sql文は固定してしまう方がパフォーマンスは上がりそうだけど。

961 :NAME IS NULL:2005/08/04(木) 18:33:10 ID:???
>>959
・パラメータ数に合わせたSQLを用意する
・1個のSQLだけど複数パラメータの有効・無効を切り替えられるようにする
 ttp://www.codeproject.com/useritems/sql_WHERE_clause.asp

ただし完全に任意個数だと動的にSQL文字列を構築することになるような気もしますが。

962 :NAME IS NULL:2005/08/04(木) 20:14:45 ID:???
CommandTextを動的生成すりゃいいだけじゃ無いん?

963 :NAME IS NULL:2005/08/09(火) 14:34:53 ID:Lv2nBy4V
SELECT文のWhere条件で、
Like条件を課すときに、
ひらがな、カタカナを区別なしにSELECTしてしまいますが、
ひらがな、カタカナを区別することは可能でしょうか?

例)
Like'%あ%'
の場合
・あいうえお
・アイウエオ
両方ともSELECTしてしまう。

964 :NAME IS NULL:2005/08/09(火) 15:02:44 ID:???
>>963
select * from テーブル where カラム like '%あ%' COLLATE Japanese_CI_AI_KS

965 :NAME IS NULL:2005/08/09(火) 17:02:22 ID:???
TechED行ってきたんだけどさ、2005はミラーリング時に待機系と監視系のSQL Serverライセンスが
要らないんだってYO

966 :NAME IS NULL:2005/08/09(火) 17:11:03 ID:???
>>965
フェイルオーバークラスタの待機系はもとからライセンスは要らなかったと思ったが
監視系ってなんだろう。

967 :NAME IS NULL:2005/08/09(火) 20:13:30 ID:???
>>966
ミラーリング構成にしたときのウィットネスだろ
http://pcweb.mycom.co.jp/cgi-bin/print?id=23491

968 :NAME IS NULL:2005/08/10(水) 11:15:47 ID:???
SQL Server 2005では計算列という機能が追加されました。
http://naka.wankuma.com/site/column/server/00003.htm

これってSQLServer7.0とかSQLServer2000の計算列とどう違うの?

969 :NAME IS NULL:2005/08/10(水) 12:42:32 ID:???
>>968
Index付けするときの制約が2005で弛んだとかじゃまいか。
ANSI_NULLS をONにしろとか色々あったじゃん。


970 :NAME IS NULL:2005/08/10(水) 16:39:51 ID:XqhE6Lry
SQL2005はいろいろよさそうではあるが、
ANSI SQLのinterval型とdate型の追加は欲しかった。

971 :NAME IS NULL:2005/08/10(水) 17:00:10 ID:???
喪前らに SQL 2005 絡みで相談なんですが…

いまだに SQL Server 7.0 (Win2K)を使ってるのだが
WSUS や Groupboard 使いたいので
アップグレードを検討してます。

SUS は来年6月でサポートが切れるらしいので
それまでに SQL をアップグレードしたいのだけど
今すぐ SQL 2000 を買うべきか
それとも SQL2005を待つべきか
どうでしょう。

972 :NAME IS NULL:2005/08/10(水) 19:19:02 ID:???
>>971
GroupBoard と WSUS を使いたいだけなら今すぐ2000を買う。
これから.NET開発を始めたりするなら2005を待つ。

予算に余裕があるなら L+SA でアシュアランスを付けて2000を買う。

手感じ?

973 :NAME IS NULL:2005/08/10(水) 21:45:30 ID:???
>>971
サポートが切れて、おまいがいつ頃どれだけ困るかによると思うけど。

974 :NAME IS NULL:2005/08/10(水) 22:35:26 ID:???
長々βテストやってたとはいえ
出始めの2005に乗っかるのは危険ではなかろうかと思ったり。

975 :NAME IS NULL:2005/08/10(水) 22:41:14 ID:???
>974
同意。
W2003とかを見る限り、以前より出始めの品質はマシになった気はするが。

976 :NAME IS NULL:2005/08/10(水) 22:41:59 ID:???
いつどれだけ困るかを量るのって難しいよ。
有事に混乱しないためにはサポートが切れる前に予算を組むのが常套なんじゃないかな。
SUSはセキュリティに直結するソフトだし。

977 :NAME IS NULL:2005/08/10(水) 23:51:56 ID:???
新バージョンが出ても新機能を使わなければ、それほどトラブルはないと思うが。
まあ、漏れは後1年はWinXP+VS.NET2003+SQLserver2000体制で行くが。

978 :NAME IS NULL:2005/08/11(木) 01:51:01 ID:???
SQL2005を買っておいてSQL2000にダウングレードして使うというのもいいんじゃないか。

979 :971:2005/08/11(木) 08:11:14 ID:???
お前ら、ご助言ありがとうございます。

>>972
.NET開発の予定はありません。
7.0 で機能面では今まで事足りてた程度のことしか
してませんので。○| ̄|_

>>973
SUS はサポートが切れた時点でセキュリティアップデートの
供給が現実的に止まってしまいますので、即、困ります。
なのでミグレーション期間も考慮に入れると
遅くとも来年5月頃までにはアップグレートしなくては
いけません。

>>974
普段はOSなどでも原則として SP1 が出るまで導入しない慎重派です。
SQL2005のSP1って何時頃でしょうね。

>>978
その方法ならSQL2Kのライセンスフィーは要らないということですか?
SQL2000を買って2005にアップグレードとの違いというか
あえてダウングレードするメリットが良く理解できないのですが…


980 :NAME IS NULL:2005/08/11(木) 08:50:56 ID:???
だうんぐれーどってタダみたいな値段?
だったら1本で2種類買えてウマー。

981 :NAME IS NULL:2005/08/11(木) 10:05:01 ID:???
>980
 ダウングレードはタダみたいな値段と言うより無償やね。
 同時に二種類以上使える訳ではないので、念の為。
 ちなみに、OSでもOfficeでもVisual Studioでも可能です。


>979
 ダウングレードするメリットは、要は既に正規パッケージや
ライセンスを購入できない製品を使用できること、それに尽きる。
 今回の場合だと、2000で様子を見ながら、2005が安定したと
判断できた所で追加費用を必要とせずに2005に変更できる所だと
思う。

982 :NAME IS NULL:2005/08/11(木) 10:44:36 ID:???
>>979
ミグレーション の検索結果 約 126 件
マイグレーション の検索結果 約 132,000 件

983 :NAME IS NULL:2005/08/11(木) 11:12:51 ID:???
ダウングレード権は箱売りのソフトには付いてなかった希ガス。
SQL Serverは例外かもしれないけど。

984 :NAME IS NULL:2005/08/11(木) 12:29:24 ID:???
>983
http://www.microsoft.com/japan/seminar/licensing/primer/default.mspx
 とりあえず。

985 :NAME IS NULL:2005/08/11(木) 16:55:02 ID:???
各テーブルのデータ型、キーインデクスなどのテーブル構造を一覧で抽出したいんだが
SQL文で可能でしょうか

ちなみにSQL2000です

986 :NAME IS NULL:2005/08/11(木) 18:12:02 ID:???
2000です
データを誤って全部削除してしまいました
削除前に復元する方法がありましたら教えてください
ファイルの容量は大きいままです

987 :NAME IS NULL:2005/08/11(木) 20:57:05 ID:???
>>985
sp_helpindexとかどう?

988 :NAME IS NULL:2005/08/12(金) 08:49:47 ID:???
>>983
http://www.microsoft.com/japan/sql/evaluation/license/downgrade.asp

パッケージの場合は予め旧バージョンを持ってることが前提かな?

989 :NAME IS NULL:2005/08/12(金) 09:27:34 ID:???
>>985
sp_help だとフィールド情報とかも取れた。


990 :NAME IS NULL:2005/08/12(金) 14:50:13 ID:LFPiNd2K
sp_xxxはクエリアナライザでグリッド表示させるにはいいが、
isql や sqlcmd などで手軽に表示できるのはないものか。

991 :NAME IS NULL:2005/08/12(金) 18:36:07 ID:???
りばーすえんじにやツールでも作ってくれよ!

992 :NAME IS NULL:2005/08/13(土) 01:13:34 ID:+ulNbMGp
初心者で非常に申し訳ないですが、XPでSQL SERVERをインストールし、 VB6でプログラムを作っているのですが
全然DBにアクセスできません
単にソースに問題があると思いますが、現在はconnectionのプロバイダをSQLODBCに、dataソースはlocalserver
プロバイダーの部分がだめぽと思っていますが、以前windows2000でやった時はこのソースで接続できていただけに
何が悪いのか分りません
win2000だとコンパネにODBC32(だったかな?)があってそこで何か設定していた気がするのですが、xpには無いため
そこに問題があるのかと勘ぐっています
一体どの辺りが怪しいのでしょうか?

993 :NAME IS NULL:2005/08/13(土) 03:11:32 ID:???
>>992
コントロールパネルの管理ツールにあるデータソース(ODBC)で設定できるはず。

994 :NAME IS NULL:2005/08/13(土) 08:01:03 ID:???
>>922
しかし実は根本的にもうODBC接続は必要ないぞ
Provider=SQLOLEDB,Data Source=(local)
とかでOKだ

995 :959:2005/08/13(土) 20:38:22 ID:???
レスおそくなりましたが、>>960さん、>>961さん、>>962さんありがとうございました。
やっぱり動的にSQL文を生成するしかないんですかね。まぁしょうがないか。

996 :992:2005/08/13(土) 21:57:50 ID:+ulNbMGp
現在の状態はというと・・
コンパネ→管理ツール→データソース(ODBC)→ユーザーDSNでSQLを設定し、接続テストをすると成功したと出ます
一方VB6だと
Set cn = New.ADODB.Connection
cn.open "Provider=SQLOLEDB;" & _
    "Data Source = (LocalServer);" & _
    "Inital Catalog = DB名;", "sa",""
cn.CursorLocation = 3
という記述をしています。
上記の「(LocalServer)」の部分にSQLコンソールルートで言う「SQL Serverグループ」の一つ下の階層に
「(LOCAL Windows NT)」という記述があります。
また、「ODBCデータソース アドミニストレータ」の「ユーザーDSN」の名前は「LocalServer」としており、ドライバはSQL Server
となっています
分りにくくてすいません


997 :NAME IS NULL:2005/08/13(土) 22:23:13 ID:???
>>996
VB6の接続文字列がそれだとODBC接続ではないんだが。
Data Source = (LocalServer) の部分を Data Source = サーバー名
にしたらいけるでしょ。
その後、コンパネからODBC設定を削除しても動作することを確認すればOK。
どうしてもODBC接続をしたければ
cn.open "DSN=LocalServer"
でいいけど、今更ODBC接続に拘る理由はないと思われ。

998 :NAME IS NULL:2005/08/13(土) 23:26:24 ID:???
あと関係ないがsaのブランクパスワードやめれ。
ローカルサーバならWindows認証使え。
Provider=SQLOLEDB;Data Source=.;Initial Catalog=DB名;
Trusted Connection=Yes


999 :NAME IS NULL:2005/08/13(土) 23:50:40 ID:???
>以前windows2000でやった時はこのソースで接続できていた
というのは謎だね。RDOかODBCDirectを使ってたんじゃないかな?

1000 :NAME IS NULL:2005/08/14(日) 00:58:19 ID:Jhm3bIWJ
1000?

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

304 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)