Microsoft SQL Server 総合スレ 6
早すぎじゃね?
テスト環境に導入してしばらく様子見るのが普通だと思ってた。
938 :
928:2008/12/21(日) 00:41:06 ID:???
default:怠慢・欠席・不参加・不履行
マ板的には怠慢、つまり何もしていない(=初期値)が意味的には一番近いんだろうか?
年末に本番環境の2005を2008に入れ替えます
いいよね?
人柱が増えるおかげで Service Pack がでたら
またかなりよくなりそうだな
SQL Server 2008 です。
Table1 と Table2 が同じ構造だとして、
Table1 の全件を Table2 に移したいと思っています。
insert into Table2 select * from Table1;
だとエラーになってしまうのですが、どう書いたらいいでしょうか?
なんのエラーになるの?
945 :
NAME IS NULL:2008/12/24(水) 09:52:26 ID:dzxhWigS
サーバマシンが不安定なためOSと共に2005の再インストールを計画中なのですが
既存のmaster、msdb、model、ユーザDBのファイルを
再インストール後にアタッチで復元しようと思います。
OS再インストール前にこれらのDBを意図的にデタッチする必要はあるでしょうか?
インスタンスを停止すれば勝手にデタッチするのでしたら愚問になりますが
そのあたりの仕組みを理解していないものですいません。
「エラーになる」しか書けないような奴に仕事させんなよ…
既にtable2があるってオチじゃないのか?
すでにデータが入っていてキー重複という線もあるぜ
>>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;
どうせ同じ構造じゃないってオチだろ
951 :
943:2008/12/25(木) 02:33:11 ID:???
手元に動かせる環境がないので、正確には分かりませんが、文法エラーです。
皆さんならすぐに分かると思ったのですが。
Table1 と Table2 は同じ構造で、キーは重複しません。
Oracle だとあの書き方で通ります。
>>949 ありがとうございます。やってみます。
文法的には間違ってない。
原因はいろいろ考えられるけど想像であれこれ言うよりエラーを貼れとしか。
>>951 その文法エラーを示すメッセージを貼ってくださいよ。
こりゃだめだw
955 :
943:2008/12/26(金) 00:39:35 ID:???
>>952 ありがとうございます。文法的には間違ってないですか?
SSMAで変換かけてもエラーになったのでてっきりこの文法はないのかと。
今度もう一度試してみます。
何だ、釣りか。
957 :
sage:2008/12/26(金) 11:08:24 ID:CVA6mREA
顧客向けシステムのDB用に2005StandardのユーザCALを購入したのですが
Windowsのどこで設定するのかご存じの方、お教えいただけると幸いです。
販売元サポートに聞いたら「設定するとこはないですよ」て言われたんだけど
社内で「嘘だろ!」と怒られてしまって。
焦ってたり。情報が見つからなかったりで。
紳士協定です
2000 までは入力するところあったんだっけ。
まぁ実際にCAL買ってなくても数字入れればその数で使えたと思うが
設定なんて無制限w
>>959 2000はあるな。俺なんか99とかしてるがww
962 :
957:2008/12/26(金) 18:36:38 ID:???
分からないまま、納品てことになりそうです。
レスをくれた方々、ありがとうございました(*-人-*)
>>958 紳士協定ww
2008のExpressダウンロードしてインストールしようとしたんだけど、全然成功しない。
事前のチェックとかは全て終わって、インストールは始まるんだけど途中でエラーが出てしまう。
そのエラーを見ても、何を改善すればいいのかサッパリわからない。
みんなは2008なんの問題もなくインストールできた?
昔の2000や2005はごく普通に出来たんだけど、2008はマシン変えてもどれも出来ないんだよね。
3台PCがあって、1台がServer、後は全部XPなんだけどどれも成功しない。
仮想環境で新規に作った環境でも成功しない。
これインストールできるのか?と思う程成功しない。
2008からは散々事前チェックとかが入ってるから、それがOKってなってればインストールできそうなもんなんだけど何故に・・・
詳細はエラーログを見ろと言われてみてみても、そのエラーログが長すぎて一体どれが原因なのかがサッパリで。
一応見てわかる分には、MSXML 6.0 Parser -- インストールに失敗しました
というのだけ明らかに失敗とわかるログがあったけど、でも何故失敗するかがわからない。
>>963 2008を入れたけど…。
相当時間が掛かった覚えがある(現在は2005Expressに戻した)
Core2Quad+メモリ6GBで一時間くらいかかんなかったっけ。
インストール途中でエラー出て止まってるようなので、そんなに時間はかからなかった。
事前の設定とか色々を除いて、最後のインストールだけでいうと数分でエラーでて止まるぐらい。
スペック的にはよく似たぐらいかな。
なんでなのかなあ・・・
ファイルがぶっ壊れてるのかも。
もっかいダウソしてみれば?
>>966 それだけ別にインストールしてみたけど、無理でした。
というか現在、インストール自体受け付けなく・・・
>>967 ダウンロードしなおしたけど、上記理由によりもっと根本的におかしな状態になってしまって。
インストーラ実行後、一番最初の環境チェック?みたいなのが終わって
そこから本来は次のチェックが始まるはずなんだけど、今それ以降反応がなくなってプロセスが進まない状態に。
windowsインストーラのクリーンアップツールがあっただろ
それつかってみれば
>>969 おおおおおおお!
それを使ってからインストールしてみたら、成功しました!
どうもありがとうございます。
そんなもんがあるのか。
知らなきゃ永久にインストールできねーな。
知識は力とはこのことだね。
SQL Server Express Edition (with Advanced Services)の 2005 と 2008 を
同居させることってできるんでしょうか?
974 :
972: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のそれぞれのインスタンスに
ログインできてるので、大丈夫だと思うんですが、もう少し動作確認してみます。
2005以降はツールはバージョン違いがあると入れられなくて共存しなくなったよね。
でも2005と2008が共存しないとなると2005のDeveloperを使ってて2008のExpressを試そうとすると困りそうな気がするけど。
>>975 共存できてるよ?
まさにその2005Devと2008Expressの状態で。
2005には2005のSSMSで、2008には2008のSSMSでログインできてる。
>>972 イタタタタタタタタタタタタタタタタタタタタタタ
SQL Server 2005/2008 Express は
外部公開のWebサーバで使っても問題ないんでしょうか?
Standard以上のプロセッサライセンスが必要なんでしょうか?
デッドロックから抜け出せません。
原因が分からず、何かアドバイスをいただけないでしょうか?
レコードが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)?
長くてすいません。
よろしくお願いします。
>>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の順で。
>>980 本日試してみたところ、非常に高速で、
デッドロックは故意におこせないのですが、
そのテスト用アプリで生じていたページロックが
解消されました。
これで解決するか分かりませんが、しばらく様子を
見てみたいと思います。
ありがとうございました!
あーごめん俺がロックしてた
SQLServer2005で、メンテナンスプランを使って毎日1回バックアップをとろうとしています
(1つのファイルにバックアップセットを追加していきたいと思っています)。
バックアップを取る際に、最近10日分だけ残して、11日前のバックアップセットは削除したいのですが、
それにはどのようにすればいいでしょうか?
「バックアップセットの有効期限」に10日を設定するだけでは駄目なのでしょうか?
984 :
NAME IS NULL:2009/01/08(木) 15:23:55 ID:VXlkEjyg
SQLServer2005とSQLServer2008って同一PCで同時に稼動させることは出来ますか?
デキル