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接続だったので、気付きませんでした。

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)