Microsoft SQL Server 総合スレ 6

このエントリーをはてなブックマークに追加
936NAME IS NULL:2008/12/20(土) 14:02:27 ID:???
早すぎじゃね?
テスト環境に導入してしばらく様子見るのが普通だと思ってた。
937NAME IS NULL:2008/12/20(土) 16:10:29 ID:???
>>935
前科ってなに?
938928:2008/12/21(日) 00:41:06 ID:???
>>929-934
930さんので出来ました。ありがとう。

939NAME IS NULL:2008/12/22(月) 14:18:28 ID:???
default:怠慢・欠席・不参加・不履行

マ板的には怠慢、つまり何もしていない(=初期値)が意味的には一番近いんだろうか?
940NAME IS NULL:2008/12/22(月) 23:11:21 ID:???
Cumulative update package 1 for SQL Server 2005 Service Pack 3
http://support.microsoft.com/kb/959195/
941NAME IS NULL:2008/12/23(火) 18:43:45 ID:???
年末に本番環境の2005を2008に入れ替えます
いいよね?
942NAME IS NULL:2008/12/23(火) 22:09:19 ID:???
人柱が増えるおかげで Service Pack がでたら
またかなりよくなりそうだな
943NAME IS NULL:2008/12/24(水) 00:02:05 ID:???
SQL Server 2008 です。
Table1 と Table2 が同じ構造だとして、
Table1 の全件を Table2 に移したいと思っています。

insert into Table2 select * from Table1;

だとエラーになってしまうのですが、どう書いたらいいでしょうか?
944NAME IS NULL:2008/12/24(水) 01:31:38 ID:???
なんのエラーになるの?
945NAME IS NULL:2008/12/24(水) 09:52:26 ID:dzxhWigS
サーバマシンが不安定なためOSと共に2005の再インストールを計画中なのですが
既存のmaster、msdb、model、ユーザDBのファイルを
再インストール後にアタッチで復元しようと思います。
OS再インストール前にこれらのDBを意図的にデタッチする必要はあるでしょうか?
インスタンスを停止すれば勝手にデタッチするのでしたら愚問になりますが
そのあたりの仕組みを理解していないものですいません。
946NAME IS NULL:2008/12/24(水) 10:54:10 ID:???
「エラーになる」しか書けないような奴に仕事させんなよ…
947NAME IS NULL:2008/12/24(水) 11:39:17 ID:???
既にtable2があるってオチじゃないのか?
948NAME IS NULL:2008/12/24(水) 11:47:38 ID:???
すでにデータが入っていてキー重複という線もあるぜ
949NAME IS NULL:2008/12/24(水) 18:22:32 ID:???
>>943
Table1にフィールドが3つ(fld1、fld2、fld3)あるとして、とりあえず↓のどれかでうまくいくかやってみて。
あとどんなエラーメッセージが出るかも書いて。


insert into Table2 (fld1, fld2, fld3) select * from Table1;

insert into Table2 select fld1, fld2, fld3 from Table1;

insert into Table2 (fld1, fld2, fld3) select fld1, fld2, fld3 from Table1;
950NAME IS NULL:2008/12/24(水) 23:48:13 ID:???
どうせ同じ構造じゃないってオチだろ
951943:2008/12/25(木) 02:33:11 ID:???
手元に動かせる環境がないので、正確には分かりませんが、文法エラーです。
皆さんならすぐに分かると思ったのですが。

Table1 と Table2 は同じ構造で、キーは重複しません。
Oracle だとあの書き方で通ります。

>>949
ありがとうございます。やってみます。
952NAME IS NULL:2008/12/25(木) 21:15:55 ID:???
文法的には間違ってない。
原因はいろいろ考えられるけど想像であれこれ言うよりエラーを貼れとしか。
953NAME IS NULL:2008/12/25(木) 21:47:46 ID:???
>>951
その文法エラーを示すメッセージを貼ってくださいよ。
954NAME IS NULL:2008/12/25(木) 22:22:02 ID:???
こりゃだめだw
955943:2008/12/26(金) 00:39:35 ID:???
>>952
ありがとうございます。文法的には間違ってないですか?
SSMAで変換かけてもエラーになったのでてっきりこの文法はないのかと。
今度もう一度試してみます。
956NAME IS NULL:2008/12/26(金) 02:15:34 ID:???
何だ、釣りか。
957sage:2008/12/26(金) 11:08:24 ID:CVA6mREA
顧客向けシステムのDB用に2005StandardのユーザCALを購入したのですが
Windowsのどこで設定するのかご存じの方、お教えいただけると幸いです。

販売元サポートに聞いたら「設定するとこはないですよ」て言われたんだけど
社内で「嘘だろ!」と怒られてしまって。
焦ってたり。情報が見つからなかったりで。
958NAME IS NULL:2008/12/26(金) 11:51:38 ID:???
紳士協定です
959NAME IS NULL:2008/12/26(金) 12:39:48 ID:???
2000 までは入力するところあったんだっけ。
まぁ実際にCAL買ってなくても数字入れればその数で使えたと思うが
960NAME IS NULL:2008/12/26(金) 13:17:30 ID:???
設定なんて無制限w
961NAME IS NULL:2008/12/26(金) 14:00:23 ID:???
>>959
2000はあるな。俺なんか99とかしてるがww
962957:2008/12/26(金) 18:36:38 ID:???
分からないまま、納品てことになりそうです。
レスをくれた方々、ありがとうございました(*-人-*)

>>958
紳士協定ww
963NAME IS NULL:2008/12/27(土) 00:58:15 ID:???
    2008のExpressダウンロードしてインストールしようとしたんだけど、全然成功しない。
    事前のチェックとかは全て終わって、インストールは始まるんだけど途中でエラーが出てしまう。
    そのエラーを見ても、何を改善すればいいのかサッパリわからない。

    みんなは2008なんの問題もなくインストールできた?
    昔の2000や2005はごく普通に出来たんだけど、2008はマシン変えてもどれも出来ないんだよね。
    3台PCがあって、1台がServer、後は全部XPなんだけどどれも成功しない。
    仮想環境で新規に作った環境でも成功しない。

    これインストールできるのか?と思う程成功しない。
    2008からは散々事前チェックとかが入ってるから、それがOKってなってればインストールできそうなもんなんだけど何故に・・・

    詳細はエラーログを見ろと言われてみてみても、そのエラーログが長すぎて一体どれが原因なのかがサッパリで。
    一応見てわかる分には、MSXML 6.0 Parser -- インストールに失敗しました
    というのだけ明らかに失敗とわかるログがあったけど、でも何故失敗するかがわからない。
964NAME IS NULL:2008/12/27(土) 09:11:22 ID:???
>>963
2008を入れたけど…。
相当時間が掛かった覚えがある(現在は2005Expressに戻した)
Core2Quad+メモリ6GBで一時間くらいかかんなかったっけ。
965NAME IS NULL:2008/12/27(土) 10:33:13 ID:???
インストール途中でエラー出て止まってるようなので、そんなに時間はかからなかった。
事前の設定とか色々を除いて、最後のインストールだけでいうと数分でエラーでて止まるぐらい。
スペック的にはよく似たぐらいかな。

なんでなのかなあ・・・
966NAME IS NULL:2008/12/27(土) 11:23:48 ID:???
MSXMLだけ先にインストールしてみたらどうでしょ。

Microsoft XML パーサー (MSXML) のバージョン一覧
ttp://support.microsoft.com/kb/269238/
967NAME IS NULL:2008/12/27(土) 22:00:34 ID:???
ファイルがぶっ壊れてるのかも。
もっかいダウソしてみれば?
968NAME IS NULL:2008/12/28(日) 14:11:10 ID:???
>>966
それだけ別にインストールしてみたけど、無理でした。
というか現在、インストール自体受け付けなく・・・

>>967
ダウンロードしなおしたけど、上記理由によりもっと根本的におかしな状態になってしまって。

インストーラ実行後、一番最初の環境チェック?みたいなのが終わって
そこから本来は次のチェックが始まるはずなんだけど、今それ以降反応がなくなってプロセスが進まない状態に。
969NAME IS NULL:2008/12/28(日) 18:07:15 ID:???
windowsインストーラのクリーンアップツールがあっただろ
それつかってみれば
970NAME IS NULL:2008/12/29(月) 15:19:01 ID:???
>>969
おおおおおおお!
それを使ってからインストールしてみたら、成功しました!

どうもありがとうございます。
971NAME IS NULL:2008/12/29(月) 22:02:50 ID:???
そんなもんがあるのか。
知らなきゃ永久にインストールできねーな。
知識は力とはこのことだね。
972NAME IS NULL:2008/12/31(水) 21:51:12 ID:???
SQL Server Express Edition (with Advanced Services)の 2005 と 2008 を
同居させることってできるんでしょうか?
973NAME IS NULL:2008/12/31(水) 22:47:57 ID:???
エディション書いてないけど、多分大丈夫じゃないかな。
http://msdn.microsoft.com/ja-jp/library/ms143694.aspx
974972:2009/01/01(木) 13:26:15 ID:???
>>973
ありがとうございます。リンクを参考に別名を指定してインストールしたところ、
- ルール "SQL Server 2005 Express Tools" は失敗しました。
- SQL Server 2005 Express Tools がインストールされています。
- 続行するには、SQL Server 2005 Express Tools を削除してください。
とエラーが表示されましたが、以下のサイトなんかも参考にして、
SQL Server Management Studio Expressをアンインストールしてからインストールすると、
無事インストールできました。
ttp://devadjust.exblog.jp/8565032/
一応、Management Studio Expressから、2005、2008のそれぞれのインスタンスに
ログインできてるので、大丈夫だと思うんですが、もう少し動作確認してみます。
975NAME IS NULL:2009/01/02(金) 12:12:09 ID:???
2005以降はツールはバージョン違いがあると入れられなくて共存しなくなったよね。
でも2005と2008が共存しないとなると2005のDeveloperを使ってて2008のExpressを試そうとすると困りそうな気がするけど。
976NAME IS NULL:2009/01/02(金) 21:23:43 ID:???
>>975
共存できてるよ?
まさにその2005Devと2008Expressの状態で。
2005には2005のSSMSで、2008には2008のSSMSでログインできてる。
977NAME IS NULL:2009/01/05(月) 15:34:02 ID:???
>>972
イタタタタタタタタタタタタタタタタタタタタタタ
978NAME IS NULL:2009/01/05(月) 17:23:43 ID:???
SQL Server 2005/2008 Express は
外部公開のWebサーバで使っても問題ないんでしょうか?
Standard以上のプロセッサライセンスが必要なんでしょうか?
979NAME IS NULL:2009/01/05(月) 23:24:21 ID:???
デッドロックから抜け出せません。
原因が分からず、何かアドバイスをいただけないでしょうか?

レコードが15万件ほどのテーブル1があります。
主キーは列A,B,C。
インデックスは主キーに対応したクラスタインデックスのみ。
他に列C,D,Eでも一意で、これを条件に更新を行います。
以下のUPDATE文が10個ほどの並列プロセスで流れている
のですが、数百回に一度デッドロックが発生します。
条件のDとEの値は最低どちらかは異なり、確かに一意の
レコードに対して更新をかけています。

UPDATE テーブル1 SET F = '1'
WHERE C+D+E IN
(SELECT TOP1 C+D+E FROM テーブル1
WHERE D = '値' AND E = '値'
ORDER BY C)

SQL Server Profilerでトレースしたところ、上記のUPDATE文
のみによって引き起こされているようです。
DeadLock Graphを見るとKEYではなくPAGEに対して更新ロック(U)
を取り合う様が見れるのですが、ひどくぐちゃぐちゃです。
試しに条件文のSELECTのみWITH (ROWLOCK,UPDLOCK)でデバッグ
してみたのですが、大量のPAGEロック(IU)と一つのKEYロック(U)が取得されます。
C,D,Eに一意の非クラスタ化インデックスを貼ると、すっきりするのですが
PAGE(IU)とKEY(U)に2つずつロックされます。(どうして一つにならない?)

ところで、UPDATE文の中のSELECT文は何ロックを取得するのでしょうか?
更新ロック(U)、それとも共有ロック(S)を取得してからの排他ロック(X)?

長くてすいません。
よろしくお願いします。
980NAME IS NULL:2009/01/06(火) 00:03:02 ID:???
>>979
>WHERE C+D+E IN (以下略
計算や文字列接続をするとINDEXは効かなくなる。

動かしていないけど、多分こんな感じ。
UPDATE テーブル1 SET F = '1'
WHERE D = '値' AND E = '値'
AND C IN
(SELECT TOP1 TBL.C FROM テーブル1 AS TBL
WHERE TBL.D = テーブル1.D AND TBL.E = テーブル1.E
ORDER BY C)

あと、UNIQUEINDEXはD,E,Cの順で。

981NAME IS NULL:2009/01/06(火) 21:33:27 ID:???
>>980

本日試してみたところ、非常に高速で、
デッドロックは故意におこせないのですが、
そのテスト用アプリで生じていたページロックが
解消されました。

これで解決するか分かりませんが、しばらく様子を
見てみたいと思います。

ありがとうございました!
982NAME IS NULL:2009/01/07(水) 00:18:51 ID:???
あーごめん俺がロックしてた
983NAME IS NULL:2009/01/07(水) 22:43:22 ID:???
SQLServer2005で、メンテナンスプランを使って毎日1回バックアップをとろうとしています
(1つのファイルにバックアップセットを追加していきたいと思っています)。

バックアップを取る際に、最近10日分だけ残して、11日前のバックアップセットは削除したいのですが、
それにはどのようにすればいいでしょうか?
「バックアップセットの有効期限」に10日を設定するだけでは駄目なのでしょうか?

984NAME IS NULL:2009/01/08(木) 15:23:55 ID:VXlkEjyg
SQLServer2005とSQLServer2008って同一PCで同時に稼動させることは出来ますか?
985NAME IS NULL
デキル