1 名前:NAME IS NULL mailto:sage [2007/03/28(水) 23:24:40 ID:???] Microsoft SQL Server 総合スレ 5
2 名前:NAME IS NULL mailto:sage [2007/03/28(水) 23:26:15 ID:???] Microsoft SQL Server (Transact-SQL) の総合スレッドです。 ・Microsoft 公式サイト www.microsoft.com/japan/sql/ ・過去スレ Microsoft SQL Server 総合スレ 4 pc11.2ch.net/test/read.cgi/db/1142315583/l50 Microsoft SQL Server 総合スレ3【MS SQL】 pc11.2ch.net/test/read.cgi/db/1123981539/l50 MS SQL Server 総合スレ2 pc11.2ch.net/test/read.cgi/db/1093012583/l50
3 名前:NAME IS NULL mailto:sage [2007/03/29(木) 15:30:30 ID:???] SQL質疑応答スレから来ました。 SQL Server2005を利用しております。 DBが何らかの理由により、select文等を実行出来ないもしくは実行に十数秒時間が 掛かったらアラートとして指定のメールアドレスに通知を行いたいと思います。 何かいい方法とかツールはありますでしょうか?
4 名前:NAME IS NULL [2007/03/31(土) 08:52:41 ID:gRQsHyCj] DB板はdat落ちの心配がなくていいな
5 名前:NAME IS NULL mailto:sage [2007/04/01(日) 00:23:03 ID:???] >3 調べるだけならプロファイラでDurationが10000以上とか条件を入れればいいんだけど、 それをメールで送るってどうしたらいいのかよくわからん。
6 名前:NAME IS NULL mailto:sage [2007/04/02(月) 20:40:50 ID:???] なんでSQLCLRは普及しないの?
7 名前:NAME IS NULL mailto:sage [2007/04/02(月) 23:35:58 ID:???] 配置、配置した後のアセンブリ入れ替えなどが面倒だから普及しない、 と思ってる。 思ってるだけで、詳しいことは知らないわけですが・・・
8 名前:初心者 [2007/04/03(火) 09:47:46 ID:vqFH/tMY] すみません、質問です。 SQL SERVER 7.0を使用中ですが、完全バックアップのみ 現在バックアップを毎日とっています(日付入りで別ファイルごとに)。 しかしこれから毎日その完全バックアップのファイルに差分バックアップ をとって、今までと同様に別ファイルに更新したいのです。 しかし差分バックアップの設定をする際に特定のファイルしか指定できません。 (例えばDB名SQLDBの場合SQLDB_db_200704030901.bakのファイルへしか 差分バックファイルが指定できなく、次に新しい完全バックアップファイル (SQLDB_db_200704032101.bak)が出力された時にもSQLDB_db_200704030901.bakへ 続いて差分バックアップする。) 完全バックアップのファイルが別ファイルに出力された時点で 差分バックアップもそのファイルの差分バックアップへ移行したいのですが。
9 名前:NAME IS NULL mailto:sage [2007/04/03(火) 10:00:55 ID:???] >>6 forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1405832&SiteID=7 でも、SQL CLR はかなり問題を抱えていますよ。 パフォーマンスは当初言われているほど早くない。 スキーマごとに Application Domain を構成するので、暴走したり、 例外を発生してしまった場合、Application Domain のアンロードされるので、 そのときにSQL CLR でトランザクションをかけてデータの追加・更新・削除などを行っていると、 問答無用でロールバックされ、さらに原因がわかるログを残してくれないという罠。 データベースの照合順序(例:Japanese_CI_AS、デフォルト)と SQL CLR 内部で 文字列比較をするとデータベースの照合順序とは違う結果が返ってくる。(これは明らかにデザインバグ) Japanese_CI_AS の場合は IF 'A' = 'A' は真ですが、SQL CLR で比較すると偽になります。 (SQL CLR は OS の NLS を使っている) 例外処理も大変でエラー番号:6522 が返るだけで、実際に調べるには RAISERROR を使わないと 分からない場合がある。 32bit の場合、SQL CLR は Memory To Reserve にロードされますが、デフォルト 256MB なので、 あっという間にパンクする可能性があります。 ですので、SQL Server を起動するときの起動オプション -g である程度のサイズを確保してください。 結構なリスクがあるんですが、それでも SQL CLR 使いますか? これ意外にもまだまだトラップがいっぱいありますよ。
10 名前:NAME IS NULL mailto:sage [2007/04/04(水) 09:13:19 ID:???] SQL Server 2005 Service Pack 2 の重要な更新 support.microsoft.com/?kbid=934458 www.microsoft.com/downloads/details.aspx?FamilyID=d09cf5c4-fec4-4322-9fee-06a43401cf0c&DisplayLang=ja
11 名前:NAME IS NULL mailto:sage [2007/04/05(木) 00:57:38 ID:???] ↑ いよっ色男、気が利くねぇ
12 名前:NAME IS NULL mailto:sage [2007/04/05(木) 20:25:15 ID:???] SQL Server 2005 Service Pack 2 の重要な更新 support.microsoft.com/?kbid=934459 www.microsoft.com/downloads/details.aspx?FamilyID=a7c903fe-35a7-4bb2-8e73-932770099711&DisplayLang=ja あれ?
13 名前:NAME IS NULL mailto:sage [2007/04/05(木) 20:33:32 ID:???] 更新前のビルド番号によって KB番号が分かれてるのね。 このビルド番号の違いは何に起因するんだろう。
14 名前:NAME IS NULL mailto:sage [2007/04/05(木) 20:36:01 ID:???] あー。 Build3042〜3053 >>10 Build3150〜3158 >>12
15 名前:NAME IS NULL mailto:sage [2007/04/05(木) 20:38:53 ID:???] 31xxは見たことないな。 先月のSP2差し替え( support.microsoft.com/?kbid=933508 )でも 3042→3043だしなぁ(旧SP2を入れてしまって上記をパッチ当てても3050)。
16 名前:NAME IS NULL mailto:sage [2007/04/07(土) 01:30:14 ID:???] 正直、2000 SP4 で何も困らない
17 名前:バリバリ [2007/04/09(月) 18:59:18 ID:Mh1EPvod] SQLserver2005をインストールして 読込処理を行ったら異常にレスポンスが遅かったです。 C#で開発を行っておりますが、試しにDBをORACLE10に変えてみたら 読込速度はUPしました。 この差は何なんでしょうか? ちなみにインストール時から何もいじってない初期状態です。
18 名前:NAME IS NULL mailto:sage [2007/04/09(月) 19:30:06 ID:???] SQLServerにすると老人に会い、PosgreSQLにすると病人に会い、 MySQLにすると死者に会い、Oracleにすると沙門に会い出家することにしました。 諸行無常。
19 名前:NAME IS NULL [2007/04/09(月) 20:32:41 ID:b02tiFqE] あのさ、おれも君たちの大嫌いな在日だが。在日3世。 別に嫌われようがこっちはどうでもいいよw 日本という国における「楽して稼げる職業」は在日・帰化人が握ってるし(笑) 脱税もしまくりで、相続税も免除なのよw。闇口座も仮名で作り放題w。 世代を経るにしたがって金が増えてく寸法さw。パチンコ、サラ金、日本の長者番付にのってるのは在日なんだよw。 金あるから在日でも日本人女とやりまくり。さらにはレイプしても全然バレないw あと数年で日本の参政権も取得できるし(爆) 既得権益最高! 俺達はもうお前達みたいに毎日毎日職業とか将来とか金の心配なんかしなくていいんだよw バックに朝鮮総連や創価学会がついてるし、働かなくても行政から月20万の金入ってくるしねw 今俺達が考えてるのはもっと大きいこと。 いかにしてこの日本という国をボコボコにいじめ抜いてやるか、ってこと。 つまり、日本の中に、俺たち朝鮮人、韓国人の血を増やして在日を増やす。 んで日本人を少数派にしてその日本人をいじめたおす。んでこの国を乗っ取る。 今はもうその最終段階に入ってるわけ。 平和ボケした危機感ゼロのお間抜け日本人は気づいてないがw 例えば韓流ブーム。あれは在日が作ったって知ってる? あれだけ大規模なブームを作れるくらい、もう日本の中で在日の力は最強なんだよ。 自分達を地獄に導いてるとも知らずに毎日毎日テレビで韓国をヨイショしてくれる日本人w 韓流ブームのお陰で在日や韓国人へのマイナスイメージがプラスイメージになった。 そして日本人が韓国人や在日と結婚する数も圧倒的に多くなった。 つまりもうあと30年で日本は完全に在日主体の社会になるよ。 たった100万人に満たない在日に使われる1億人の日本人w お前ら糞日本人に一生地獄の生活を見せてやるよw どう?ムカムカする?(爆) でもせいぜい今みたいに2ちゃんで数十人ぐらいがチョン死ねって言うぐらいだろうね(爆)
20 名前:NAME IS NULL mailto:sage [2007/04/09(月) 21:14:18 ID:???] >>17 これでわかったら神だな。
21 名前:NAME IS NULL [2007/04/12(木) 18:36:09 ID:GlEB0TmN] >>15 support.microsoft.com/kb/933097/ SQL Server 2005 SP2 の更新されたやつインストールしても ビルドが 3042 のままなんだけどいいのかなぁ・・。 KBには 3043 になるとか書いてるんだけど・・。 それとこの累積的な修正だって ダウンロードセンターにはでてないし SQL Server のページにも載ってないし もうすこし情報を整理してほしいなぁ
22 名前:NAME IS NULL mailto:sage [2007/04/12(木) 21:30:39 ID:???] >>21 blogs.sqlpassj.org/yoshihirokawabata/archive/2007/04/11/21556.aspx
23 名前:NAME IS NULL mailto:sage [2007/04/13(金) 04:50:46 ID:???] げー…。相変わらずわかりにくいな。
24 名前:NAME IS NULL mailto:sage [2007/04/13(金) 17:58:41 ID:???] 初歩的な質問なんですが、あるテーブルでIndexをInt型にした場合、自動的にIndexが 1、2、3、4、5、6…と割り当てられていくと思うのですが、Intの最大値に達してしまった場合 どうなるのでしょうか。 また、DELETEされた物を再利用してくれるのでしょうか?
25 名前:NAME IS NULL mailto:sage [2007/04/13(金) 18:04:52 ID:???] >>17 お役にたてるかわかりませんが、SQLServerへの接続は何をつかっていますか? System.Data.SqlClientを使われていますか?それともSystem.Data.OleDbですか? SQLServerの場合はSqlClientを使うことによってOleDbよりもパフォーマンスは格段にあがります。 また、SQLServer側の簡単なチューニングをされると良いみたいです。 自動チューニングウイザードみたいなのもありますし、@ITに幾つか記事がでているので参考にしてみてください。 うちもC#で開発していますが、明らかにSQLServerのほうがパフォーマンスは良いです。 (DB初心者なのでOracleのチューニングができていないのかもしれませんが)
26 名前:NAME IS NULL mailto:sage [2007/04/13(金) 20:49:39 ID:???] >>24 > どうなるのでしょうか。 次のエラーが返されます。 サーバー : メッセージ 8115、レベル 16、状態 1、行 1 IDENTITY から型 *** への変換で、算術オーバーフロー エラー。 算術オーバーフローが発生しました。 > また、DELETEされた物を再利用してくれるのでしょうか? いいえ。 次のページにサンプルがあります。 IDENTITY があふれた場合のエラーを確認してみた blogs.sqlpassj.org/yoshihirokawabata/archive/2005/08/25/12906.aspx
27 名前:NAME IS NULL [2007/04/14(土) 09:10:41 ID:mB32J/Jk] 河端さん、常駐ご苦労様です!
28 名前:NAME IS NULL mailto:sage [2007/04/14(土) 13:53:00 ID:???] >26 Oracleだとあふれた後の挙動とか先頭に戻るとか設定できたんだよなぁと思った。
29 名前:NAME IS NULL mailto:sage [2007/04/15(日) 21:22:54 ID:???] すいません、ご存知の方いらっしゃいましたらご教授頂きたいのですが。 SQLServer2000を使用したシステムで 実際に動作させている時は全く問題ないのですが、 エンタープライズマネージャで全行表示を実行すると 「TEXT、NTEXT、または IMAGE ノードのページ (x:x)、スロットxが存在しません。」 (xは数字) というエラーが表示され、レコードの表示が途中で止まってしまいます。 このエラーメッセージは、どんな要因で表示されるのでしょう? (NTEXT型のカラムが一つだけありますが、読み込みが中断される行 の内容も特に問題はありませんでした)
30 名前:NAME IS NULL mailto:sage [2007/04/15(日) 22:41:51 ID:???] >>29 DBCC CHECKDB してみたら?
31 名前:NAME IS NULL mailto:sage [2007/04/17(火) 16:13:13 ID:???] SQL Server 2000 です。 テーブルA とテーブルB を結合させ、A の全列と B の必要項目のみを 抜き出す VIEW を作成しました。 この時、テーブルA の末尾に列を1つ追加して VIEW を実行すると、 追加した列が表示されずに、VIEW の列がおかしな事になります。 これはどのように解消すればよいでしょうか?
32 名前:NAME IS NULL mailto:sage [2007/04/17(火) 21:23:36 ID:???] >>31 結合 = UNION? それとも JOIN?
33 名前:32 mailto:sage [2007/04/17(火) 21:55:56 ID:???] 多分 JOIN だろうと思って試してみたらホントにそうなった。 列のポインタがずれたような感じで表示される。つまり新たに追加した列にひとつ前の列が表示されるような感じ。 で、ビューを作りなおしたら期待したとおりに表示された。 新しく追加した列を削除してからビューを表示すると次のエラーが返されるので、テーブル定義を変更したら定義しなおさないといけないみたいね。 ▼▼▼▼▼ サーバー : メッセージ 4502、レベル 16、状態 1、プロシージャ VIEW1、行 4 ビューまたは関数 'dbo.VIEW1' には定義された列数よりも多くの列名が指定されています。 サーバー : メッセージ 4413、レベル 16、状態 1、行 1 ビューまたは関数 'View1' はバインド エラーにより使用できませんでした。 ▲▲▲▲▲ 次のスクリプトは、サンプルの Northwind を使って試してみた例です。 /******* * ビュー作成 ********/ USE Northwind GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[VIEW1]') and OBJECTPROPERTY(id, N'IsView') = 1) drop view [dbo].[VIEW1] GO CREATE VIEW dbo.VIEW1 AS SELECT dbo.Region.*, dbo.Territories.TerritoryID, dbo.Territories.TerritoryDescription FROM dbo.Region INNER JOIN dbo.Territories ON dbo.Region.RegionID = dbo.Territories.RegionID GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO /******* * ビュー作成後の操作 ********/ USE Northwind GO -- テーブルへの列の追加 ALTER TABLE Region ADD memo VARCHAR(20) NULL GO -- 新しく追加した列に値を入れる UPDATE Region SET memo = 'memo' GO -- ビューを見る SELECT * FROM VIEW1 GO -- 新しく追加した列を消す -- ALTER TABLE Region -- DROP COLUMN memo
34 名前:32 mailto:sage [2007/04/17(火) 22:16:05 ID:???] ちょっと調べてみたが、ビューの SELECT 文で * を使うのはよくないみたい。 ビューに影響を与えるようなテーブル変更は CREATE VIEW に WITH SCHEMABINDING オプションをつければ検出してエラーにできるけど、 WITH SCHEMABINDING をつけると列に * を指定していることを指摘されてエラーになりました。
35 名前:NAME IS NULL mailto:sage [2007/04/18(水) 14:46:03 ID:???] トランザクション処理で、ID削除後にまた同じID追加場合って、DELETE→INSERTじゃなく ただのUPDATEとしてコミットしてくれるんだろうか? なんとなく処理時間短くなったような気がしたんでそんなこと思っただけなんだけどさ
36 名前:NAME IS NULL mailto:sage [2007/04/18(水) 15:34:53 ID:???] テーブルを引数にしたプロジージャってできるかな。
37 名前:NAME IS NULL mailto:sage [2007/04/19(木) 21:31:45 ID:???] >>36 SQL Server 2000 で試したら、table 型の引数を持ったストアドプロシージャは作れなかった。 CREATE PROCEDURE sp_test @param1 varchar, -- @pTable table, @param2 varchar AS SELECT @@version GO コメントをはずすと構文エラーになる。 BOL に次の記述があるが、これがその説明に相当すると思う。 > table 変数間における代入操作はサポートされていません。
38 名前:NAME IS NULL [2007/04/22(日) 13:05:35 ID:FvHL9xyS] すいません、SQLServer2005 をSP2にしたいのですが、結局どれを当てればいいのでしょうか?
39 名前:NAME IS NULL mailto:sage [2007/04/22(日) 16:06:31 ID:???] >>38 これの最後にある図を見て、934459 をインストールすればとりあえず問題なし。 SQL Server 2005 Service Pack 2 と General Distribution Release のインストール順 www.microsoft.com/japan/sql/sp2_gdr_install.mspx
40 名前:38 mailto:sage [2007/04/22(日) 17:34:19 ID:???] >>39 すいません、助かります。 数百メガ落とさなきゃいけないのかと心配していました。新しいのに含んでいるみたいなので それだと100メガ程度で済みそうですね。
41 名前:NAME IS NULL [2007/04/22(日) 20:47:08 ID:BzBc7zTG] AP2 のあとにいきなり KB934459 をインストールでよかったのか KB933097 をいれてから KB934459 をいれちゃったよ。 KB933097 のファイルがゴミになって残ってなければ良いんだけど・・・。 しっかりしてくれよ、河端さん・・・・。
42 名前:NAME IS NULL mailto:sage [2007/04/23(月) 05:07:48 ID:???] SP3まだですか?
43 名前:NAME IS NULL mailto:sage [2007/04/23(月) 07:23:49 ID:???] 河端氏を責めるのは酷だろう。 しかし、MSの「SQL Server 開発チーム ブログ」の役に立たなさは凄いな。
44 名前:NAME IS NULL [2007/04/23(月) 15:27:38 ID:kp6Au5Ga] 最近データベースに興味をもって勉強しはじめました。 一つ質問があります。 マイクロソフトの資格に MCA データベース (MCA Database) と Microsoft SQL Server 2005 - Implementation and Maintenance 試験番号:70-431 の二つがありますが、まずチャレンジしてみるということにおいては MCA データベース (MCA Database)を狙ってみるのがいいですよね? この二つは難易度もまるで違いますか? どなたかご教授下さい。 よろしくお願いいたします。
45 名前:NAME IS NULL [2007/04/23(月) 17:22:13 ID:4bwOdoqx] ソフトバンク携帯について 「全然繋がらないから解約しようとしたら、6万請求された」とよく聞く※。 (繋がりにくい理由は、ソフトバンクが使用する周波数が建物に弱いことによる) そして、各種プランが良くないが、ホワイトプランが特に良くない。 携帯のメーカーの数で考えて「友人の4分の1くらいは持ってる?」と考えがちだが… ソフトバンク携帯を持つのは 約300人 に 1人。 300人の友人がいても、確率的にはそのうち1人しか無料にならない。(契約数/日本人口で計算) その1人以外の通信料はすべて、他社の約2倍。1日たった7分でも1万円を超える。 長者番付にのるような在日企業は、ほぼ全部がパチンコ・サラ金・風俗と、法の裏側を行くものばかり。 (本社が韓国にあるものは違う。まあ、本社がハンバーガー屋で支社がサラ金というのも有り得ないが) 日本に本社を置く在日企業としては、まさにソフトバンクは、ただ1つの例外。 なのだが… 思い込みやら、まず読まない契約書の解約金やらを利用した商法も目立つ。気をつけて欲しい。 ※…新聞記事は「0円携帯 解約に6万円 県、ソフトバンクに改善要望」で検索 ↓ついでに。思い込みを利用されているのは、実は、投資家も同じだったり… ttp://news21.2ch.net/test/read.cgi/bizplus/1176891847/
46 名前:NAME IS NULL mailto:sage [2007/04/23(月) 18:16:51 ID:???] SQL ServerじゃないですがMSDE2000の質問です。 Enterprise ManagerでDBをタスクパッドで見るとデータサイズが 1.99G あります。 ですが、テーブル情報を見ても(全て併せて) 650MB しかありません。 データベースの圧縮を行っても圧縮されません。 データベースのバックアップを取ってから圧縮してもサイズが変わりません。 どうすれば圧縮できるようになりますか?
47 名前:NAME IS NULL mailto:sage [2007/04/23(月) 21:08:40 ID:???] >>44 MCA の方は知らないけど、データベースを触り始めて 2 ヶ月で 70-228, 229, 431 はとれましたよ。 そんなに難しくないです。79-431 は次の本を一通り読んで、 www.amazon.co.jp/MCP%E6%95%99%E7%A7%91%E6%9B%B8-SQL-Server-2005-%E8%A9%A6%E9%A8%93%E7%95%AA%E5%8F%B7/dp/4798111678/sr=1-2/qid=1170579331/ref=sr_1_2/503-2080075-7761530?ie=UTF8&s=books 後は次の自習書シリーズで補えばいいと思います。 www.microsoft.com/japan/sql/techinfo/selfstudy.mspx 試験範囲外のものもあるので、試験範囲はチェックした方がいいと思います。 >>46 データベース ファイルのファイルサイズ = 1.99 GB データベース ファイルの使用中のサイズ = 650 MB という意味ですよね? クエリ アナライザから DBCC SHRINKDATABASE (<databasename>, 10) を実行してみたらどうですか? タスクパッドはリロードしないと表示は更新されないことに注意です。
48 名前:46 mailto:sage [2007/04/24(火) 12:33:38 ID:???] >>47 データベースのサイズは、その認識であってます。 タスクパッドで見ると 全般タブ の割り当て済み領域 = 1.99GB テーブル情報タブ のテーブルのサイズを合計した値 = 650MB です。 ただ、テーブルは複数ありますが、その中の1つが600MB以上サイズを取っています。 クエリアナライザで DBCC SHRINKDATABASE (<databasename>, 10) を実行した後、Enterprise Managerを開いて確認してもサイズは変化しませんでした。
49 名前:NAME IS NULL mailto:sage [2007/04/24(火) 19:52:59 ID:???] >>48 "その認識" って・・・ まあそれはおいといて、ステートメントを実行してその結果が普通と違うんで、 いろいろ試す必要がありそうですね。とりあえずこんなところでしょうか。 イベントログにエラーが記録されてないかチェックしエラーがあったらトラブルシュートする SQL Server のエラーログをチェックしてエラーがあったらトラブルシュートする DBCC CHECKDB を実行してみる バックアップを別の DB に戻してそこで DBCC SHRINKDATABASE を実行して圧縮できるか試してみる
50 名前:46 mailto:sage [2007/04/24(火) 20:49:46 ID:???] >>49 もっと細かく書かないとわかんねーだろうが。 もったいぶってないで手順を詳しく書いてください。
51 名前:NAME IS NULL mailto:sage [2007/04/24(火) 20:53:42 ID:???] だが断る
52 名前:NAME IS NULL mailto:sage [2007/04/24(火) 20:56:03 ID:???] えらそうだね。
53 名前:NAME IS NULL mailto:sage [2007/04/24(火) 20:57:13 ID:???] つか、これがわかんねーの?
54 名前:NAME IS NULL mailto:sage [2007/04/24(火) 21:00:52 ID:???] >>51-53 自演乙
55 名前:NAME IS NULL mailto:sage [2007/04/24(火) 22:55:26 ID:???] >>47 ありがとうございます。 その参考書はみたことあります。 一度購入してみて、じっくり勉強してみます。 ありがとうございました。
56 名前:NAME IS NULL mailto:sage [2007/04/25(水) 18:20:23 ID:???] Express Editonの Toolkit serviceとAdvanced Serviceってどっちが強いの?
57 名前:NAME IS NULL mailto:sage [2007/04/25(水) 20:15:52 ID:???] >>56 内容はそれぞれ違います。Express はほとんど使ったことないので間違ってたらすみません。 1) SQL Server のデータベースだけ使いたいときにインストールするもの SQL Server 2005 Express Edition SP2 Microsoft SQL Server Management Studio Express Service Pack 2 2) Reporting Service を使いたいときにインストールするもの SQL Server Express with Advanced Services SQL Server Express Toolkit SQL Server Express with Advanced Services にしか Reporting Service は含まれていない。 SQL Server Express Toolkit にしか Business Intelligence Development Studio は含まれていない。 これは Reporting Service のレポートを作るのに必要です。 普通は 1) にあるものだけインストールすれば問題ないと思いますよ。 SSMSE SP2 だけ探すのが難しいのでリンクを貼っておきます。 Microsoft SQL Server Management Studio Express Service Pack 2 www.microsoft.com/downloads/info.aspx?na=47&p=5&SrcDisplayLang=ja&SrcCategoryId=&SrcFamilyId=5b5528b9-13e1-4db9-a3fc-82116d598c3d&u=details.aspx%3ffamilyid%3d6053C6F8-82C8-479C-B25B-9ACA13141C9E%26displaylang%3dja
58 名前:NAME IS NULL mailto:sage [2007/04/25(水) 22:41:59 ID:???] >>57 ありがd 1)だけで十分だわ
59 名前:NAME IS NULL mailto:sage [2007/04/26(木) 00:01:11 ID:???] クエリアナライザのエディタは Visual Studio みたいな コードの整形機能(?)はないんでしょうか?
60 名前:46 mailto:sage [2007/04/26(木) 11:44:56 ID:???] >>49 返事が送れてすみません。 それと言葉使いがおかしいみたいでごめんなさい。 SQL Serverのログには、<database>開始中とかしかありませんでした。 そのDB全体のバックアップをとり復元を行い、圧縮をしましたが同じ結果でした。 DBCC CHECKDB を実行した結果は、各オブジェクトに何行データがあるかが 表示され、「0 個のアロケーション エラーと 0 個の一貫性エラー」と表示されました。 データが多いテーブルに関しては以下の情報が出力されています。 ---------- 'table' に対する DBCC の結果。 オブジェクト 'table' の 39256 ページの中に 88649 行あります。 ---------- 行数に対してページ数が多すぎるのでしょうか? table のデザインは datatime, float × 200のレコードです。 >>50 は私が書いたものではありません。
61 名前:NAME IS NULL mailto:sage [2007/04/26(木) 15:30:08 ID:???] >>60 CREATE DATABASEしたときの初期サイズが2GBなんじゃない? 通常の圧縮操作(DBCC SHRINKDATABASE)だと初期サイズ以下にはならない。 DBCC SHRINKFILEでtarget_sizeを指定するといいはず。
62 名前:46 mailto:sage [2007/04/26(木) 18:04:43 ID:???] >>61 初期サイズは1MBで作成しました。 DBCC SHRINKFILE (<database>_Data, 10)を実行しましたがサイズは変わりませんでした。 以下のSQLを実行しています。 ---------- CREATE DATABASE <database> ON PRIMARY ( NAME = <database>_Data, FILENAME = 'D:\DB\<database>_Data.mdf', SIZE = 1MB, FILEGROWTH = 10%, MAXSIZE = UNLIMITED ) LOG ON ( NAME = <database>_Log, FILENAME = 'D:\DB\<database>_Log.ldf', SIZE = 1MB, FILEGROWTH = 10%, MAXSIZE = UNLIMITED ) GO MSDE2000でバックアップを取ったDBを WorkgroupEditionに復元をして >>47 >>49 >>61 のことを実行しましたが、サイズは減りませんでした。 新しくDBを作り、insert into <database>.dbo.<table> select * from <table> を実行してサイズを確認すると、300MBほどになっていました。
63 名前:NAME IS NULL mailto:sage [2007/04/26(木) 22:31:09 ID:???] >>62 > DBCC SHRINKFILE (<database>_Data, 10)を実行しましたがサイズは変わりませんでした。 これダメです。DBCC SHRINKFILE の第二引数はサイズ(MB) で、 ここにデータベース ファイルの使用中のサイズより小さい値を指定すると何も起こりません。 >>47 によると、 >データベース ファイルの使用中のサイズ = 650 MB とのことなので、まず 700 あたりを指定してみたらどうでしょう。
64 名前:NAME IS NULL mailto:sage [2007/04/26(木) 22:39:30 ID:???] >>59 SQL Server 2000 の話だと思いますが、SQL Server 2000 のクライアントツールには そういうイイものはついてません。 どの程度のことを期待されているのかわかりませんが、 私だったら、SQL Server Management Studio で SQL Server 2000 に接続します。 SSMS にはクエリ エディタが統合されており([クエリ]→[エディタでクエリをデザイン])、 これを使えば Access や MSQuery 程度のことは簡単にできます。 ただし最終的にテキストエディタは必要になると思います。 SSMS は >>57 のリンクからダウンロードできます。 ただし .NET Framework 2.0 のインストールが必要です。
65 名前:NAME IS NULL mailto:sage [2007/04/27(金) 11:51:46 ID:???] >>63 すみません、自分でもDBサイズについて、よくわかっていないようでした。 タスクパッドの割り当て済み領域を見ると以下のようになっています。 データ 全体 :1995.75MB 使用中:1995.75MB 空き :0MB トランザクションログ領域 全体 :0.99MB 使用中:0.29MB 空き :0.7MB DBにはMSDE2000を使用しているので限界の2GBに達しています。 これをWorkgroupEdtionにバックアップから復元をしても圧縮出来ませんでした。 以下の作業は、MSDE2000, WorkgroupEditionで実行しました。 DBCC SHRINKFILE (<database>_Data, 1900)を実行しても圧縮されませんでした。 ---------- DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages ------ ------ ----------- ----------- ----------- -------------- 7 1 255456 128 255448 255448 2000にすると以下のエラーが出力されました。 データベース 'database' のファイル '1' を 256000 ページに圧縮することはできません。 255456 ページしかありません。
66 名前:NAME IS NULL [2007/04/27(金) 13:11:45 ID:R0pzkXZh] >>65 "圧縮" (shrink) という言葉を zip や lzh のような圧縮 (compress) と混同していますね。 SQL Server に対して使用する圧縮という言葉は、データベース ファイルのうち データ(オブジェクト)が入っていない部分を解放するという意味です。 現状ではデータベース ファイルにいっぱいまでデータが入っているので、 レコードなどのオブジェクトを削除しないとデータベース ファイルはこれ以上小さくなりません。
67 名前:46 mailto:sage [2007/04/27(金) 13:41:49 ID:???] >>66 タスクパッドから見るテーブル情報の全サイズは 630,168K です。 ということはデータの使用中サイズの 1995.75MB の中に データがちりばめられて保存されているということでしょうか? サイズが大きいテーブルのデザインは以下になっています。 datetime × 1, float × 200 インデックスは datetime を指定しています。
68 名前:46 mailto:sage [2007/04/27(金) 18:55:02 ID:???] 失礼かとは思いましたが、別の場所でも質問させてもらいました。 レスして頂いた方の情報から、そこで以下のようなことが分かりました。 DBCC SHOWCONTIG をすると、サイズが大きいテーブルの断片化が激しいことがわかりました。 LogicalFragmentation が 99% を超えていました。 テーブルのINDEXを作成しなおすと、タスクパッドで見るテーブルサイズが 2002128KB になっていました。 恐らくですが、断片化をどうにかしないとこれ以上データの圧縮は 出来ないのではないかと思います。 断片化を直すためにDBCC INDEXDEFRAG, DBCC DBREINDEXも実行しましたが サイズに変化はありませんでした。
69 名前:NAME IS NULL mailto:sage [2007/04/27(金) 18:55:46 ID:???] マルチは死ねよ
70 名前:NAME IS NULL mailto:sage [2007/04/27(金) 19:28:13 ID:???] MSDEの上限サイズは2Gだっけか?
71 名前:NAME IS NULL mailto:sage [2007/04/27(金) 21:18:54 ID:???] >>67 > データがちりばめられて保存されているということでしょうか? そうでなくて、ぎっしり詰まっているということ。 だから詰まっているものを消さない限りどうがんばってもファイルサイズは減りません。 データベース ファイルの中にはレコードしか入ってないと思っているようですが、 インデックスなどもオブジェクトとしてデータベース ファイルの中に入っています。 インデックスが容量を使ってるんじゃないですか? インデックスのサイズはタスク パッドや sp_spaceused で見られます。
72 名前:NAME IS NULL mailto:sage [2007/04/27(金) 21:32:14 ID:???] >>68 > テーブルのINDEXを作成しなおすと、タスクパッドで見るテーブルサイズが > 2002128KB になっていました。 2G 使ってるじゃん。テーブル サイズってインデックス サイズの間違いじゃないの? 論理フラグメンテーションの意味わかってる? それはクラスタ化インデックスなのかとか FILLFACTOR とか解決は遥か遠そうだから、 インデックス消すか、SQL Server 2000 にアップグレードするか、SQL Server 2005 Express に移行したら?
73 名前:NAME IS NULL [2007/04/28(土) 00:07:31 ID:B3/rVMFc] SQL 難しいよう(泣
74 名前:NAME IS NULL mailto:sage [2007/04/28(土) 00:41:23 ID:???] SQLの本にオラクルも一緒に載ってるとオラクルが羨ましく感じる(´ω`;)
75 名前:46 mailto:sage [2007/04/28(土) 08:33:08 ID:???] >>71-72 このテーブルには、10秒毎にデータを保存しています。 保存期間は60日です。 テストプログラムで10年分のデータを追加、削除を繰り返しました。 そのときは、約1.6GB からmdfのサイズが増えることはありませんでした。 今、DBの確認ができないため、後でインデックスサイズが容量を使っているのか を調べてみます。 >>72 私自身、SQL Serverが初心者なためレスして頂いた用語を 一つ一つ調べながら試しています。 論理フラグメンテーション、クラスタ化インデックス、FILLFACTOR は ヘルプを見ましたが、いまいち理解出来ていません。 MSDE2000から WorkgroupEdition に移行する予定ですが 現状のまま稼動させるとHDDの容量いっぱいまでサイズが増えるかもしれないため この問題が解決するまで導入が見送られている状態です。
76 名前:NAME IS NULL mailto:sage [2007/04/28(土) 08:46:43 ID:???] >>75 日付を主キーにすると分布が偏るから再利用されない領域ができますね。 こういう場合はマメに索引の再編が必要になります。 データが増えるとクラスタ化索引の再編は時間もかかるし作業域も使うから、 非クラスタの主キーにするのがおすすめです。 おそらく一度主キーを削除してしまってshrinkして主キーを非クラスタで作り直せばいいと思いますよ。
77 名前:NAME IS NULL mailto:sage [2007/04/28(土) 10:47:54 ID:???] マルチ先だけでやればいいのに
78 名前:NAME IS NULL mailto:sage [2007/04/28(土) 10:56:37 ID:???] row_number()っていいね〜 はまちゃったよ 連番と伝票内の連番とか部署切り替えの最後だけ1つけるとか 小計とか帳票のページ替えフラグとかいろいろ使える
79 名前:NAME IS NULL [2007/04/28(土) 13:39:32 ID:y2Eec+M8] 今は CREATE TABLE の勉強中ですっ!
80 名前:NAME IS NULL mailto:sage [2007/04/28(土) 18:26:23 ID:???] sp_spaceused を実行してテーブルのサイズを調べました。 以下を見ると、インデックスでサイズが大きくなってはいませんでした。 name : table rows : 88649 reserved : 1985736 KB data : 307152 KB index_size: 104 KB unused : 1678480 KB インデックスは次のSQL文で作成しています。 CREATE UNIQUE INDEX [table_idx] ON [table]([datetime]) ON [PRIMARY] それを削除し次のSQL文でインデックスを作成し直しました。 CREATE CLUSTERED INDEX [cl_table] ON [table]([datetime]) その後に、sp_spaceused を実行すると、unused が少なくなり タスクパッドでも割り当て済み領域の使用中サイズが 174MB になっていました。 name : table rows : 88649 reserved : 353328 KB data : 352520 KB index_size: 768 KB unused : 40 KB ファイルの圧縮を実行すると、割り当て済み領域が 174MB まで少なくなりました。 MSDE2000では、インデックスの再作成が出来なかったため WorkgroupEdtion で試しています。 インデックスの作成が、理解出来ていなかったようです。 テーブルの作成から勉強しなおします。 レスをして頂き、ほんとうにありがとうございました。 他所でも質問したことはお詫び致します。 申し訳ございませんでした。
81 名前:46 mailto:sage [2007/04/28(土) 18:29:05 ID:???] >>80 は私の書き込みです。 MSDE2000でインデックスの作成が出来なかったのは データベースサイズの限界2GBを超えてしまうためです。
82 名前:NAME IS NULL mailto:sage [2007/04/28(土) 19:03:41 ID:???] >>80 そこのindex_sizeはクラスタ索引は含まないんだろうね。
83 名前:46 mailto:sage [2007/04/30(月) 01:32:02 ID:???] >>82 はぁ?
84 名前:NAME IS NULL mailto:sage [2007/04/30(月) 01:38:02 ID:???] >>83 46のオレオレ詐欺か・・はぁとかふぅとか言うのは池沼の証
85 名前:46 mailto:sage [2007/04/30(月) 09:35:49 ID:???] >>84 ふぅ?
86 名前:46 mailto:sage [2007/04/30(月) 12:09:26 ID:???] ぷぅ
87 名前:46 mailto:sage [2007/04/30(月) 13:02:44 ID:???] ぶぅ〜
88 名前:NAME IS NULL mailto:sage [2007/04/30(月) 14:42:06 ID:???] ぶりっ
89 名前:NAME IS NULL mailto:sage [2007/04/30(月) 15:01:26 ID:???] ぶす ↓
90 名前:KANA [2007/04/30(月) 23:11:26 ID:POoLbNTI] ある項目itemから文字'|'が、X回目に出現するのは何文字目か 検索したい。 oracleだと、 select regexp_instr( item, '|', 1, x ) from Table で実行できますが、 同様のことをSQL-Serverの関数で行うことは可能でしょうか?
91 名前:NAME IS NULL mailto:sage [2007/04/30(月) 23:27:45 ID:???] >>90 ない。 2005ならSQLSLRでそういうユーザー関数を自分でつくる。
92 名前:NAME IS NULL mailto:sage [2007/04/30(月) 23:32:43 ID:???] >>90 まったく同じ機能をもった関数はないので、必要に応じて次の関数群を組み合わせて作る必要があります。 文字列関数 (Transact-SQL) msdn2.microsoft.com/ja-jp/library/ms181984.aspx CHARINDEX, PATINDEX, SUBSTRING あたりを使うことになるんじゃないかと思います。
93 名前:NAME IS NULL [2007/05/06(日) 01:12:07 ID:7VodA4wx] 総合ということなので 悩んでることでちょっと質問 あるDBのデータを検索する場合 SQL文にLikeなどを使って現在検索しています。 これがいわゆる見出し語検索といわれるものだと思うのですが もうひとつの手法である全文検索 これの有用性が今一歩理解できません。 どのような時に有効なのでしょうか?
94 名前:NAME IS NULL mailto:sage [2007/05/06(日) 11:21:09 ID:???] >>93 文書量が膨大になったとき検索が早い。 文書を(単語に)区切ってインデックスが作成されるから。 見出し語検索の like '%foobar%' は超遅い、ということがわからないなら、 このことが理解できるのはもっと先だと思います。 わかるなら、BOL から "フルテキスト検索" をキーワード検索したり、ぐぐったりすればすぐ理解できます。
95 名前:NAME IS NULL mailto:sage [2007/05/08(火) 01:53:02 ID:???] サーバへの接続ノード数と言うのは、例えばSQLServerに接続する クライアント側プログラム自作したとして、これも1カウントに入るんですか?
96 名前:NAME IS NULL mailto:sage [2007/05/08(火) 08:52:33 ID:???] >>95 ライセンスのことが知りたいのか?それともセッション(接続)のことが知りたいのか? ライセンスなら、MS に問い合わせるべし。 ttp://www.microsoft.com/japan/licensing/contact-us/
97 名前:NAME IS NULL mailto:sage [2007/05/08(火) 11:37:37 ID:???] セッションの数って決まってるんだっけか?
98 名前:NAME IS NULL mailto:sage [2007/05/08(火) 12:51:38 ID:???] >>97 @@MAX_CONNECTIONS (Transact-SQL) msdn2.microsoft.com/ja-jp/library/ms179874.aspx User Connections オプション msdn2.microsoft.com/ja-jp/library/ms187882.aspx
99 名前:NAME IS NULL mailto:sage [2007/05/08(火) 23:01:13 ID:???] >>98 サンクス。32767までなら余裕でした。
100 名前:NAME IS NULL mailto:sage [2007/05/08(火) 23:37:10 ID:???] likeで便乗 like 'text%' をユーザーからの要望で like '%text%' に変更しなければいけない なんとなく遅くなったらイヤポ 対象文字列をリバースしたテンポラリテーブルを作って like 'text%' と like 'リバース文字列%' を union させたら どっちが速いかね〜と机上で考えてる まぁ実際試せばわかることだけど 他になんか妙案ないかな? 検索対象は nvarchar(10) でインデックスなし、最大10万件くらいのテーブル とここまで書いてインデックスないからあまり変わらないのかなとオモタ
101 名前:NAME IS NULL mailto:sage [2007/05/08(火) 23:49:45 ID:???] >>100 >like '%text%' と >like 'text%' と like 'リバース文字列%' を union が同じにならないのは分かってて言ってるのか?
102 名前:NAME IS NULL [2007/05/09(水) 15:14:40 ID:wVgHvjRJ] 質問です。SQLSERVER 7.0を使用しています。 全体バックアップとトランザクションログを使っての復元で質問です。 例えば全体バックアップを毎日12:00に行ってトランザクションログは 6:00と18:00の2回バックアップを行っていたとする場合、 ある日の22:00の時点で18:00のデータに復元したい場合、 12:00の全体バックアップ+18:00に取ったトランザクションログ を利用すれば良いと思いますが、トランザクションログの6:00〜12:00までの ログは今回の復元時には利用されず、自動的に12:00〜18:00までのログが使用され 復元されると言う事で良いのでしょうか?
103 名前:NAME IS NULL mailto:sage [2007/05/09(水) 21:59:12 ID:???] >>102 任意のログファイルを選択してリストアできる。
104 名前:NAME IS NULL mailto:sage [2007/05/09(水) 22:34:02 ID:???] >>102 自分は 2000 以降のユーザで、リストア時には RESTORE ステートメントを使うので 何が自動的なのかわかんないんだけど、2000 で Enterprise Manager を使ってバックアップを戻すときは 何がリストアされるかが表示されて、プロパティをみるとそれがいつの完全・差分・トランザクション ログのバックアップか 表示されるよ。そんで >>102 で意図したようになってる。 7.0 でも多分同じだと思うけどなあ。
105 名前:NAME IS NULL [2007/05/10(木) 14:19:13 ID:V55nTEYq] 初心者なのですがご質問してよいですか DB:MS_SQL_2005 VB6.0 TABLE_A から同じ値のA_CODE内のB_CODEが最大値を持つレコードの C_CODEの値を取得したい A_CODE B_CODE C_CODE 11 32 A 11 42 B 11 18 C 12 18 F 12 19 H 12 25 K ↓ A_OCDE C_CODE 11 B 12 K 上記の抽出機能を1つのSELECT命令で記述したいのですが うまく行かないので困っています お詳しい方のご教授お願い致します
106 名前:NAME IS NULL mailto:sage [2007/05/10(木) 14:36:43 ID:???] >>105 SELECT A_CODE, C_CODE FROM ( SELECT A_CODE, B_CODE, C_CODE, RANK() OVER (PARTITION BY A_CODE ORDER BY B_CODE DESC) AS RANK FROM yourtable ) A WHERE RANK = 1 ORDER BY A_CODE
107 名前:NAME IS NULL [2007/05/10(木) 14:52:30 ID:V55nTEYq] >>106 早々にありがとう御座います! 今スグ試せる時間が無いので後ほどトライします! ありがとう御座いました!
108 名前:NAME IS NULL [2007/05/10(木) 18:53:33 ID:nIIPHcZW] >>104 レスありがとうございます。 そうですよね。多分きちんと復元されてますよね。
109 名前:104 mailto:sage [2007/05/10(木) 23:30:39 ID:???] >>108 やってみればいいじゃんとしか言いようが無い。 7.0 は持ってないし今後使う予定も無いのでご自分でどうぞ。
110 名前:NAME IS NULL mailto:sage [2007/05/12(土) 17:11:30 ID:???] サーバAにセットアップしてあるSQL Server2000 で、 リンクサーバーを使ってサーバBのSQL Server2000 データベースのテーブルを参照したいんだけど、 サーバAのSQL Serverサービス開始アカウントでドメインユーザを 指定せずに、システムアカウントを指定したんだけど、 ”SQL Server が存在しないか、アクセスが拒否されました。” ってエラーになってしまう。 MSドメインのAdministratorsグループに存在しない アカウントをサーバAのSQL Serverサービス開始アカウントに 設定してみても、やっぱ同じエラーになってしまう。 www.microsoft.com/japan/technet/prodtechnol/sql/2000/books/c08ppcsq.mspx www.microsoft.com/japan/technet/prodtechnol/sql/2000/maintain/sp3sec02.mspx このへんを読んだけど、どうやらうまく資格情報の委任が 出来てないみたい。 サーバAのSQL Serverサービス開始アカウントで システムアカウントを指定するか、 MSドメインのAdministratorsグループに存在しない アカウントのどちらかでリンクサーバを設定するには どうしたらいいでしょう?
111 名前:NAME IS NULL [2007/05/13(日) 03:21:28 ID:2EQA78C8] 質問です。 ASP.NETでSQLSever2005Expを(初めて)使おうと思っているのですが、 ストアドプロシージャに関して思わぬところでハマってしまいました。 どうも、uniqueidentifier型のフィールドをSELECTすると正しい結果が 帰ってこないようなのです。 ALTER PROCEDURE dbo.testproc1 AS BEGIN SELECT r.RoleName, r.LoweredRoleName, r.Description FROM aspnet_Roles r END としてVS2005のIDE上で実行すると、 RoleName ---------- A B C D 該当する行はありません。 (4 行が返されました) と表示されます。(一部抜粋、改変) ところが、 ALTER PROCEDURE dbo.testproc1 AS BEGIN SELECT r.RoleName, r.LoweredRoleName, r.Description, r.RoleId FROM aspnet_Roles r END このようにして、実行したところ、 RoleName --------- 該当する行はありません。 (1 行が返されました) となってしまいました。 r.RoleIdというのはuniqueidentifier型です。この型の値が 文字として表示できないのならばまだわかりますが、 仮にそうだとしても「4行が返されました」となるはずです。 いろいろ実験してみましたがこの型のフィールドをSELECTすると どうしても正しい結果が返ってこないようなのです。 何がしたいかというと、WHERE句をさらに使用してこのテーブルで 条件が合致するレコードの一覧をRoleIdも含めて取得したいのです。 (本当は別のテーブルで別の目的で同じようなことをしたいのですが、 それは念のため伏せさせていただきます) どこが間違っているのか、どこをどうすればよいのか、 どなたかご教授ください。お願いします。
112 名前:NAME IS NULL mailto:sage [2007/05/13(日) 06:19:44 ID:???] >>111 問題は無いはずだがIDE以外から操作したらどうです?
113 名前:NAME IS NULL mailto:sage [2007/05/13(日) 06:56:53 ID:???] うっかりGroup byしてるとかw
114 名前:NAME IS NULL [2007/05/13(日) 11:57:47 ID:HZDMB/aP] 超初心者です。CASE文の練習で試しにこんなSQL文を書いてみました。 パラメータが間違っていますとメッセージが出ます。 どのようにすればいいのでしょうか? SELECT CASE @isuser WHEN 1 THEN 1 ELSE 0 END AS Expr1
115 名前:NAME IS NULL mailto:sage [2007/05/13(日) 12:39:26 ID:???] >>114 DECLARE @isuser INT SET @isuser = 123 SELECT CASE @isuser WHEN 1 THEN 1 ELSE 0 END AS Expr1
116 名前:NAME IS NULL [2007/05/13(日) 12:44:21 ID:HZDMB/aP] >>115 ありがとうございました。
117 名前:NAME IS NULL mailto:sage [2007/05/13(日) 13:05:41 ID:???] >>110 説明されている内容はこちらには正しく伝わってこないけど、 セキュリティの問題でつまづいていることはわかりました。 リンク サーバーというのは、リンクしている SQL Server が自身のクライアントからの要求にしたがって、 リンクされているデータベースに対するクエリを実行し、クライアントからはあたかもひとつのデータベースに 対してクエリを実行しているように見せかける仕組みです。 受け取った命令がトランザクションなら、DB をまたがったトランザクションであるため分散トランザクションとして 実行する必要があります。 リンク サーバー プロパティでセキュリティ コンテキストを指定しない場合、 SQL Server はサービス開始アカウントのセキュリティ コンテキストでリンクされているデータベースに ログオンし、クエリを実行します。ここでサービス開始アカウントにシステムアカウントを指定していると、 SQL Server は SYSTEM (Local System) のセキュリティ コンテキストで実行されます。 Local System という名のとおり、このセキュリティ コンテキストはローカルコンピュータ上では 強い権限をもってますが、リモート コンピュータに対しては何の権限ももっていません。 つまりリモート コンピュータにとっては Anonymous (匿名) ユーザーとして認証します。 この時、普通は匿名ユーザーに SQL Server へのログオンなど許しませんから、 アクセス拒否されて当然です。 ここで通常許される 2 つの選択肢があります。 (1) SQL Server のサービス開始アカウントに、リンクされているデータベースに ログオンできるアカウントを指定する。 (2) リンク サーバー プロパティで、リンクされているデータベースにログオンできるように セキュリティを構成する。 >>110 はいま (2) をやろうとして、 "ローカル ログオンとリモート ログオンのマッピング" と "権限の借用(最近はこれを '偽装' と呼びます)" の意味が理解できないために、 >>110 のやりたい実装(これは私にはわかりませんが)を実現できていないのでしょう。 これを行うには OS とデータベース両方に対するセキュリティの知識が必要です。 (2) を実現する敷居が高いのなら、(1) を採用するというのもひとつの手です。 >>110 を読んだ限りでは、(1) はおそらくできているのでしょう。 (1) の選択肢が存在する理由のひとつに、(2) を行うのが面倒だというのもあるのでしょうし、 (1) の選択肢を取ることそのものは問題ありません。 > サーバAのSQL Serverサービス開始アカウントで > システムアカウントを指定するか、 > MSドメインのAdministratorsグループに存在しない > アカウントのどちらかでリンクサーバを設定するには > どうしたらいいでしょう? MSドメインって何でしょうか? "どちらか" の対象となっている 2 つの項目は、対比できるようなものではないでしょう。 > このへんを読んだけど、どうやらうまく資格情報の委任が > 出来てないみたい。 大抵の場合、偽装が期待通りに実行できてなそうな場合は、ログオンされるコンピュータ、今回の場合は リンクされる DB サーバーの OS 上でログオン情報を監査するのが最初のステップです。 ちなみにこの文脈で "委任" という言葉を使ってますが、これも正しくない使い方なんじゃないかと思います。
118 名前:NAME IS NULL mailto:sage [2007/05/13(日) 13:11:03 ID:???] 長文乙
119 名前:NAME IS NULL mailto:sage [2007/05/13(日) 17:47:35 ID:???] >>112 ExecuteReader()などを使ってプログラムから呼び出してみたのですが、 確かに1行は戻ってきています。しかし、すべての項目がNULLとなっています。 (しかもNULL許容に設定してないフィールドがあるにもかかわらず) ただし、SQL文だけを「SQLブロックのデザイン」や「ビュー」などで 直接実行した場合は正常にグリッドに表示されるようです。 だから余計にわからないのですが。 ストアドプロシージャではuniqueidentifier型のデータは「例外として」 そのまま扱えないということでしょうか? とりあえず、すでにASP.NETが自動的に作成していたストアドプロシージャを まねて(4行が該当しました)と出るようにはなったんですが……
120 名前:111 mailto:sage [2007/05/13(日) 17:51:51 ID:???] このようにしてみると何故か「4行該当しました」となりました。 まだプログラムから呼んでみてはいないのでうまくいっているのか確かめられていませんが、 そもそも一体はじめのと何が違うんでしょうか? ALTER PROCEDURE dbo.testproc1 @PageIndex int, @PageSize int AS BEGIN -- Set the page bounds DECLARE @PageLowerBound int DECLARE @PageUpperBound int DECLARE @TotalRecords int SET @PageLowerBound = @PageSize * @PageIndex SET @PageUpperBound = @PageSize - 1 + @PageLowerBound -- Create a temp table TO store the select results CREATE TABLE #PageIndexForUsers ( IndexId int IDENTITY (0, 1) NOT NULL, RoleId uniqueidentifier ) -- Insert into our temp table INSERT INTO #PageIndexForUsers (RoleId) SELECT r.RoleId FROM dbo.aspnet_Roles r ORDER BY r.RoleName SELECT @TotalRecords = @@ROWCOUNT SELECT r.RoleId FROM dbo.aspnet_Roles r, #PageIndexForUsers p WHERE p.IndexId >= @PageLowerBound AND p.IndexId <= @PageUpperBound ORDER BY r.RoleName RETURN @TotalRecords END
121 名前:111 mailto:sage [2007/05/13(日) 19:26:58 ID:???] やはりこれでもIDを含むとだめですね……
122 名前:NAME IS NULL mailto:sage [2007/05/13(日) 22:02:09 ID:???] >>120 >FROM dbo.aspnet_Roles r, #PageIndexForUsers p >WHERE p.IndexId >= @PageLowerBound AND p.IndexId <= @PageUpperBound dbo.aspnet_Roles と #PageIndexForUsers の結合条件が欠けてるような。 意図してるのはRoleIdでの自然結合だろうか。そうはなってないけど。
123 名前:111 mailto:sage [2007/05/14(月) 00:20:18 ID:???] たぶんどこか抜けていると思います。 すでに自動生成されているストアドプロシージャの文字を変えた程度のことしかやってませんから。 ASP.NET側の機能にRoleIdを取得して云々というのはもともとない(ストアドで済ましている) ようなので、UserIdを含めてユーザー情報の一覧を取得しているストアドプロシージャを参考 に(コピペ)して作りました。これでもうまくはいかないですが…… とりあえずIdを取得をしなくても処理ができるようにプログラムを設計しなおした ほうが早いですかねぇ……
124 名前:110 mailto:sage [2007/05/14(月) 11:24:45 ID:???] >>117 長文ありがとうございます。 > > サーバAのSQL Serverサービス開始アカウントで > > システムアカウントを指定するか、 > > MSドメインのAdministratorsグループに存在しない > > アカウントのどちらかでリンクサーバを設定するには > > どうしたらいいでしょう? > MSドメインって何でしょうか? > "どちらか" の対象となっている 2 つの項目は、対比できるようなものではないでしょう。 MSドメインとは、ActiveDirectoryドメインのことでした。 WindowsNTの頃はマイクロソフトドメンとか言われてたので... ついつい古い用語が 出てしまいます。 > 大抵の場合、偽装が期待通りに実行できてなそうな場合は、ログオンされるコンピュータ、今回の場合は > リンクされる DB サーバーの OS 上でログオン情報を監査するのが最初のステップです。 SQLサーバへのログオンなので、OSのログオン情報が必要とは思ってもなかったです。 ってことはWindows認証を使う場合、 1.OSへのログオン 2.SQLサーバへのログオン って順番でログオンされるって事でしょうか。 SQLサーバのログオン監査レベルが”なし”になっていたので、”失敗”に変更して 試してみます。
125 名前:NAME IS NULL mailto:sage [2007/05/14(月) 11:27:30 ID:???] >>111 "uniqueidentifier型のフィールドをSELECTすると期待したものと異なる結果が返される" という問題の定義は正確ではないと思います。 次のようなテスト スクリプトは私の環境では予想通り正しく実行されました。 私の環境は Build: 9.00.3159.00 で、OS は Windows Server 2003 SP1 です。 >>111 さんご自身の DB で次のテスト スクリプトでも問題がおきるようならば、SP や hotfix をインストールすることで問題が解決するかもしれません。 -- テーブルを作成する SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[tblUID]( [UID] [uniqueidentifier] NOT NULL, [createdate] [datetime] NULL, CONSTRAINT [PK_tblUID] PRIMARY KEY CLUSTERED ( [UID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO -- テスト用のデータを準備する declare @@i as int set @@i = 0 WHILE @@i<10 BEGIN insert into tblUID select NEWID(), GETDATE() set @@i = @@i + 1 END -- sp 作成: いくつかの方法で SELECT してみる SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE sp_test AS BEGIN select t.* from tblUID t select t.createdate from tblUID t select t.UID from tblUID t select t.UID, t.createdate from tblUID t END GO -- sp を実行してみる EXEC sp_test -- sp を削除する DROP PROCEDURE sp_test -- テーブルを削除する DROP TABLE [dbo].[tblUID]
126 名前:111 mailto:sage [2007/05/14(月) 12:11:54 ID:???] ありがとうございます。 sqlcmdで実行してみました。 確かにこのスクリプトだと問題なく実行できているようですね…… SQLServerの時点では正しく処理されているということでしょうか。 ASP.NETの内部処理も正常に処理されているので、疑うべきは自分の書いた 部分だとは思うんですが、それがサッパリわかりません。 もしくはVSが自動で設定してくれたデータベースの設定が逆に悪さを しているとも考えられることは考えられそうですが。 ためしに後で、Roleのデータが入ったデータベースファイルをアタッチして 実験してみます。
127 名前:104 mailto:sage [2007/05/14(月) 14:21:16 ID:???] だれか俺のアナルに指をいれてくだし
128 名前:NAME IS NULL mailto:sage [2007/05/15(火) 13:32:27 ID:???] INSERT INTO 104
129 名前:NAME IS NULL mailto:sage [2007/05/15(火) 14:13:17 ID:???] (ANAL) VALUES (YUBI)
130 名前:110 mailto:sage [2007/05/15(火) 15:12:42 ID:???] >>117 ・ALL リンク先SQLサーバのログオン監査レベルを”失敗”に変更してみましたが、 イベントビューア・SQL Serverログの両方ともログオン失敗のログが出ていませんでした。 OSへのログオン情報を見てみようと、イベントビューアのセキュリティを見てみると、 どうやらANONYMOUS LOGONをしているみたいです。 ネットワーク ログオンの成功: ユーザー名: ドメイン: ログオン ID: (0x0,0xACA6AF0) ログオンの種類: 3 ログオン プロセス: NtLmSsp 認証パッケージ: NTLM ワークステーション名: リンク元サーバ名 ログオン GUID: - 呼び出し側ユーザー名: - 呼び出し側ドメイン: - 呼び出し側ログオン ID: - 呼び出し側プロセス ID: - 移行されたサービス: - ソース ネットワーク アドレス: リンク元サーバIP ソース ポート: 0 何でANONYMOUS LOGONなんだろ? リンク元DBのリンクサーバのプロパティ情報・セキュリティタブには、 リンク先DBへのユーザ名マッピングがあるんですが、Windows認証の時は ここはどういう扱いになるんでしょう? クエリアナライザ起動時に、Windows認証でリンクテーブルを参照すると 認証エラーになってしまいます。 ユーザ名を指定してクエリアナライザを起動してリンクテーブルを参照すると、 今度は大丈夫なんです。 あー、なんか敷居が高いなぁ。。。
131 名前:NAME IS NULL mailto:sage [2007/05/15(火) 23:00:32 ID:???] >>130 リンク先のコンピュータも Windows なんだよな? リンクサーバーってリンク先が Windows で SQL Server とは限らないんで、 ちゃんとリンク先は Windows で SQL Server xxxx だっていわないとダメよ。 > リンク元DBのリンクサーバのプロパティ情報・セキュリティタブには、 > リンク先DBへのユーザ名マッピングがあるんですが、Windows認証の時は > ここはどういう扱いになるんでしょう? そりゃローカル ログインに DB のユーザーを指定して、 リモート ユーザーにはリンク先のデータベースにログオンするユーザーを 指定するに決まってるべ。自分が挙げたリンクに書いてあるだろ? > クエリアナライザ起動時に、Windows認証でリンクテーブルを参照すると > 認証エラーになってしまいます。 > ユーザ名を指定してクエリアナライザを起動してリンクテーブルを参照すると、 > 今度は大丈夫なんです。 ユーザー名を指定して、ってのは「SQL 認証で」って意味だよな? どうせ sa を指定してて、sa のパスワードはリンク元とリンク先のインスタンスで同じなんだろ。 ログインマッピングを全部消して、[次のセキュリティ コンテキストを使用する] を選んで、 リモート ログインとパスワードにリンク先 DB にログオンできる SQL 認証のユーザーを 指定してみ?そんで、Windows 認証でリンク元 DB に対してリンク サーバーのテーブルを FROM 句に含んだクエリを実行する。
132 名前:110 mailto:sage [2007/05/16(水) 12:49:57 ID:???] >>131 >> リンク元DBのリンクサーバのプロパティ情報・セキュリティタブには、 >> リンク先DBへのユーザ名マッピングがあるんですが、Windows認証の時は >> ここはどういう扱いになるんでしょう? > そりゃローカル ログインに DB のユーザーを指定して、 > リモート ユーザーにはリンク先のデータベースにログオンするユーザーを > 指定するに決まってるべ。自分が挙げたリンクに書いてあるだろ? DBのユーザって言うのは、SQL Serverのサーバを起動しているサービスのユーザですか? それとも、クライアントからWindows認証で認証しているクライアントのログオン名ですか? SQL Serverのサーバを起動しているサービスのユーザであるとすると、 サービスを起動するユーザは一つしかないので、複数ログオン情報を入力できる訳が わからないです。 クライアントのWindowsログオン名だとすると、ドメイン名\ユーザ名でローカルユーザを 入力してOKボタンを押し、もう一度プロパティを開くと、ユーザ名が消えてしまいます。 > ログインマッピングを全部消して、[次のセキュリティ コンテキストを使用する] を選んで、 > リモート ログインとパスワードにリンク先 DB にログオンできる SQL 認証のユーザーを > 指定してみ?そんで、Windows 認証でリンク元 DB に対してリンク サーバーのテーブルを > FROM 句に含んだクエリを実行する。 クエリアナライザをSQL認証 sa でログオンすると、確かに実行できますが、 やはりWindows認証でログオンすると、認証エラーになってしまいます。 www.microsoft.com/japan/technet/prodtechnol/sql/2000/maintain/sp3sec01.mspx ここも見てるんですが、なかなか全部理解できないっす。
133 名前:NAME IS NULL mailto:sage [2007/05/16(水) 22:58:34 ID:???] >>132 > なかなか全部理解できないっす。 そりゃそうだ。四則演算もできないのに微積分やってるようなもんだからな。 『SQL Server 2000 でいってみよう』 から始めて、SQL Server 2000 自習書シリーズくらいやっとけ。 > クエリアナライザをSQL認証 sa でログオンすると、確かに実行できますが、 > やはりWindows認証でログオンすると、認証エラーになってしまいます。 そいつはおかしいわ。 んじゃ、リンク先ユーザーに linkedserveruser みたいなアカウントを作って ターゲット テーブルの SELECT 権限を与えて、「リモート ログインとパスワードに リンク先 DB にログオンできる SQL 認証のユーザー」 としてその linkedserveruser を指定する。 その他の設定は >>131 で書いたのと同じだ。 次に、SQL プロファイラでリンク先 DB のトレースを取りながら、リンク元 DB に sa でログオンして 分散クエリを実行する。この時プロファイラの LoginName 列に誰が DB にログオンしてきたか記録される。 linkedserveruser でログオンしてきてたら OK だ。sa でログオンしてきたら設定が間違ってる。 最後に、Windows 認証でリンク元 DB に対して分散クエリを実行する。 設定が >>131 の通りなら、この時もリンク先 DB に linkedserveruser でログオンしてくる。 分散クエリは期待した結果を返す。 これでダメなら、次をさらすこと。 1 リンク元、リンク先サーバーの OS の種類とバージョン 2 上の手順のどこでどのように期待しているのと違う動作をしたか 3 クエリアナライザに表示されたエラーのコピペ 4 エラーが出たときにイベントビューアにエラーが出てたらそれのコピペ
134 名前:NAME IS NULL mailto:sage [2007/05/16(水) 23:22:40 ID:???] >>110 もうMSに直接聞いたほうが早いんじゃないのか? サポートの値段と自分の人件費、どっちが高いやら www.microsoft.com/japan/microsoftservices/support/professional.mspx
135 名前:NAME IS NULL mailto:sage [2007/05/16(水) 23:26:30 ID:???] 基本的な事なんですが OSとDBファイルは物理ディスク分けたほうがいいのかな? w2003sv SQL2005 今は同じディスクでミラーリングしとるんですが 分けてミラーするかこまめにトランザクションログとるか迷ってます 劇的に改善するのかな〜 先人の意見求む! DBは今カットオーバー1.5ヶ月で250Mっす
136 名前:NAME IS NULL mailto:sage [2007/05/17(木) 17:22:20 ID:???] >>133 レスありがとうございます。 うーん、なんというか... 動く時と動かない時があって、原因がまだはっきり分からないっす。 > 1 リンク元、リンク先サーバーの OS の種類とバージョン リンク元 Windows2000sv SP4 SQL Server 2000 SP4 リンク先 Windows2003sv SP1 SQL Server 2000 SP4 > 2 上の手順のどこでどのように期待しているのと違う動作をしたか > 次に、SQL プロファイラでリンク先 DB のトレースを取りながら、リンク元 DB に sa でログオンして > 分散クエリを実行する。この時プロファイラの LoginName 列に誰が DB にログオンしてきたか記録される。 > linkedserveruser でログオンしてきてたら OK だ。sa でログオンしてきたら設定が間違ってる。 > 最後に、Windows 認証でリンク元 DB に対して分散クエリを実行する。 > 設定が >>131 の通りなら、この時もリンク先 DB に linkedserveruser でログオンしてくる。 > 分散クエリは期待した結果を返す。 この順番で時間をおかず、処理を試すとすべてOKです。 ですが、30分くらい時間をおいてから > 最後に、Windows 認証でリンク元 DB に対して分散クエリを実行する。 > 設定が >>131 の通りなら、この時もリンク先 DB に linkedserveruser でログオンしてくる。 > 分散クエリは期待した結果を返す。 ここから実行しようとすると、 Windows認証でクエリアナライザを起動し、リンクテーブルを開こうとした時に ”[Microsoft][Odbc SQL Server Driver][SQL Server][DBNETLIB][ConnectionOpen (Connect().]SQL Server が 存在しないか、アクセスが拒否されました。” のエラーメッセージが表示されます。 このときのイベントビューアには、 ”18453 :ユーザー 'リンク先サーバ名\Administrator' のログインに成功しました。接続 : 信頼関係。” のメッセージが表示されます。 > 次に、SQL プロファイラでリンク先 DB のトレースを取りながら、リンク元 DB に sa でログオンして > 分散クエリを実行する。この時プロファイラの LoginName 列に誰が DB にログオンしてきたか記録される。 > linkedserveruser でログオンしてきてたら OK だ。sa でログオンしてきたら設定が間違ってる。 このタイミングでは、イベントビューアには ”18454 :ユーザー 'linkedserveruser' のログインに成功しました。接続 : 非信頼関係。” その後すぐ > 最後に、Windows 認証でリンク元 DB に対して分散クエリを実行する。 > 設定が >>131 の通りなら、この時もリンク先 DB に linkedserveruser でログオンしてくる。 を実行すると、イベントビューアには ”18453 :ユーザー 'リンク先サーバ名\Administrator' のログインに成功しました。接続 : 信頼関係。” のメッセージです。 なぜ、時間をおかずに処理を流すとうまく動くのでしょう? sa でログオンして処理を流し、クエリアナライザを再起動してWindows認証でログオンしなおしてるのに... Windows認証で実行すると、 なぜ 'リンク先サーバ名\Administrator' になるんでしょう? 処理を実行しているクライアントは、ドメイン名\別のログイン名 でログインしてるのに。。。
137 名前:NAME IS NULL mailto:sage [2007/05/17(木) 17:25:37 ID:???] 基本的なことなんですが、SQLServerは
138 名前:110 mailto:sage [2007/05/17(木) 17:31:25 ID:???] >>136 の書き込みも110 です。 プロファイラの情報ですが、 Windows認証の場合は NTUserName: Administrator LoginName: ドメイン名\Administrator のログイン情報でした。 sa を使い、SQL認証にすると NTUserName: リンク元SQLサービス開始用ドメインユーザ LoginName: linkedserveruser になります。時間をおかずにWindows認証で処理をした時は NTUserName: Administrator LoginName: ドメイン名\Administrator と、時間をおいて動かなかった時と同じログイン名です。
139 名前:NAME IS NULL [2007/05/17(木) 21:21:32 ID:kOFxK65C] SQLど素人の者です。 プログラム技術板と重複してしまいますが 質問させてください 。 SQL SERVER2000のストアドについてですが、 ストアドの再コンパイルが必要 (しなければ動作がおかしくなる等) となる時はどんな時なのでしょうか? 同じデータ&ストアドを使用しているのにも関わらず、 あるマシンでは通常通り正しい結果を抽出できたのですが、 別のマシンではエラーとなり抽出ができない状態が発生しました。 色々試した結果、 ストアドの再コンパイルを行ったところ、 現象は解消され、正しい結果を抽出することができたのですが・・・
140 名前:NAME IS NULL mailto:sage [2007/05/17(木) 22:33:03 ID:???] >>139 へえ。 で、なんてエラーが出たの? どうして再コンパイルしようと思ったの? 普通は再コンパイルで解決するのはエラーでなくパフォーマンスの問題。 ストアド プロシージャの再コンパイルのトラブルシューティング support.microsoft.com/kb/243586/ja
141 名前:NAME IS NULL mailto:sage [2007/05/17(木) 23:26:30 ID:???] >>138 >>131 + >>133 は、「どんなユーザーで SQL Server にアクセスしてこようが、 リンク先サーバーには linkedserveruser でログインしてクエリを実行する」 ことを 意図していることはわかってるよな?(書き込みを読むとその時点から理解できてないように読める) つーことは、アクセスできようができまいが、Windows 認証を使っている時に linkedserveruser でないユーザーでリンク先にログオンしてること自体が「意図したのと違う」結果なんだよ。 で、"ドメイン名\別のログイン名" として SQL Server にログオンしてるのに、リンク元 SQL Server によるリンク先へのアクセスが 勝手にドメインの Administrator になっちまう(プロファイラによると)ってのがワカンネ。そういう動きをするようにどっかで設定してるんだろうな。 しかもそれがドメインのじゃなくてリンク先サーバーへのローカル Administrator として監査されてる(イベント ログによると)ってのもワカンネ。 矛盾しまくりだな。 オレはログインマッピングを全部消してないと思う。 この動きは kerberos による委任の動作とも違うし、そういう動きをするようにどっかで設定してるとしか思えねー。 しかもそんな設定ができるのはログインマッピングだけだし。
142 名前:NAME IS NULL mailto:sage [2007/05/17(木) 23:54:10 ID:???] >>135 > OSとDBファイルは物理ディスク分けたほうがいいのかな? 物理ディスクが複数あるなら負荷を分散したほうが早いのは当然です ページングファイルは容量を固定してデフラグする データベースファイルとトランザクションログを複数の物理ディスクに分散させる 特にユーザーデータベースとそれからtempdbも分散させる > w2003sv SQL2005 > 今は同じディスクでミラーリングしとるんですが まぎらわしいな。RAID1のことか? > 劇的に改善するのかな〜 ディスクI/OがTATのボトルネックになってるならね だからまずはそれを調べることですね SQL Server 2005 でのパフォーマンス問題のトラブルシューティング I/O ボトルネック www.microsoft.com/japan/technet/prodtechnol/sql/2005/tsprfprb.mspx#EHUAE
143 名前:NAME IS NULL [2007/05/18(金) 10:22:42 ID:xq5zC4h3] >>140 正確に申し上げると、 エラーになってしまう要因は別にあり、 ストアド内からあるユーザー定義関数を実行すると 特定のパラメータ(コード600200)の時にだけ桁あぶれをしてしまい エラーとなってしまうというものです。 全く同じDBで全く同じSQL文(ストアド)で全く同じパラメータ(コードを3017)による実行 を行った場合、あるマシンでは3017のみを対象としてそのユーザー定義関数を実行するのですが、別のマシンですと全てのコードを対象にしてのユーザー定義関数を実行してしまう という状態になっておりました。 データもストアドもパラメータも同じであるのに、マシンにより、動作が異なってしまう 状況であった為、ストアドの再コンパイルを行ってみたところ、現象が解消された 次第です
144 名前:NAME IS NULL mailto:sage [2007/05/18(金) 22:17:36 ID:???] >>143 よくわかんないけど。 桁あぶれってのは算術オーバーフローのことですよね。 そしてそのエラーが起きる原因は WHERE 条件をつけてるのに、その条件による抽出が行われないって事ですよね。 再コンパイルってのは ・sp_recompile <プロシージャ名> を実行する もしくは ・ストアドプロシージャの定義に WITH RECOMPILE オプションをつける のどちらかをやったってことですよね。 再コンパイルってのはクエリの実行プランを再作成するってことです。 拾ってくるデータ(レコードなど)は変わりません。内部的な処理方法が変わるってことです。 インデックスや統計情報、あるいはレコードが変わったときには別の実行プランでクエリを実行したほうが早いときがあります。 いまだになんでその問題に対して再コンパイルで対応しようと思ったのか理解できない。 別のことをやったのに [再コンパイル] と表現しているのでは? もしくは再コンパイル以外に行ったことがその問題を解決したのでは? ストアド プロシージャの再コンパイル msdn.microsoft.com/library/ja/createdb/cm_8_des_07_6cmd.asp
145 名前:NAME IS NULL mailto:sage [2007/05/18(金) 22:27:27 ID:???] >>142 ありがとうございます 熟読してみます 現在はRAID1にOS,スワップ,DB全部入りになってます メモリ4GでDBが200M程度なんで全部メモリに入ってそう とりあえずtmpdbだけでも分けて調査してみます
146 名前:NAME IS NULL mailto:sage [2007/05/18(金) 22:43:34 ID:???] ふつー再コンパイルするのはその SP にからむテーブルのインデックスを変更したときだな。 必要になったことはないけど。
147 名前:NAME IS NULL mailto:sage [2007/05/18(金) 22:53:29 ID:???] >>145 調べる余裕があるならこれも見といたほうがいいな SQL Server 2000 チューニング全工程 www.atmarkit.co.jp/fdb/index/index-db.html#tunesqls Dr. K's SQL Serverチューニング研修 www.atmarkit.co.jp/fdb/index/index-db.html#drk 2005じゃなくて2000だけど、原理はかわらない うちはまだ2000がほとんどなんで2005の資料はあまり読んでないが 2005をベースに書かれてるものも探せばあるかも
148 名前:NAME IS NULL [2007/05/20(日) 21:37:31 ID:yUdiSxWy] accessとSQlserverって何が違うんですか?
149 名前:NAME IS NULL mailto:sage [2007/05/20(日) 21:38:43 ID:???] 値段です
150 名前:NAME IS NULL mailto:sage [2007/05/20(日) 21:56:59 ID:???] 名前です
151 名前:NAME IS NULL mailto:sage [2007/05/20(日) 22:16:42 ID:???] 南春男でございます
152 名前:NAME IS NULL mailto:sage [2007/05/21(月) 20:35:28 ID:???] >>148 非常におおざっぱだけど、 ・Access シングルユーザーのデータベースシステム + データベースを操作するクライアントアプリケーション作成ツール ・SQL Server マルチユーザーのデータベースシステム(エンジンのみ) SQL Server をデータベースとして使って、Access でクライアントを作成することもできる。
153 名前:NAME IS NULL mailto:sage [2007/05/23(水) 15:29:58 ID:???] SQL Server 2005買ってもらったんで喜々としてインストールしたんだけど、 Access2000 で作ったADPで不具合でまくり。もしかしてサポート対象外ですか? 教えてください。
154 名前:NAME IS NULL mailto:sage [2007/05/23(水) 16:45:04 ID:???] >>153 です
155 名前:NAME IS NULL mailto:sage [2007/05/23(水) 16:50:15 ID:???] >>153 Access 2000 のメインストリーム サポートは 2004 年で終わってる。 support.microsoft.com/lifecycle/?c1=505 だからこれを額面どおりに受け止めれば SQL Server 2005 は Access 2000 から使われるように 設計されてもいないし、テストもされていないと考えることもできる。 しかし経験上、実際は多分普通に使うことはできる。 "不具合でまくり" と一言で言われても、その一つ一つの内容がわからないので、 これ以上はコメントできません。
156 名前:NAME IS NULL mailto:sage [2007/05/23(水) 17:04:20 ID:???] >>155 けち
157 名前:153 mailto:sage [2007/05/23(水) 17:43:45 ID:???] レスサンクスです。 サーバのローカルではAccess2000のADPで作ったものは しっかりと動いているのですが、リモートだと結果のレコードセットの取得に 失敗しているようです。接続拒否られます。 インストール時に選択する認証モードのせいかもしれないと思い、 混合モードにして、アカウントもSQL Serverのアカウントにして 試してみましたが同様の結果でした。それでもローカルだとしっかり動く。謎だ。 不確定要素が他にもいくつかあるので、自分なりに切り分けて、もう少しやってみます。
158 名前:153 mailto:sage [2007/05/23(水) 18:45:44 ID:???] 無理でした。 心が折れました。もうだめぽ。
159 名前:NAME IS NULL mailto:sage [2007/05/23(水) 19:03:37 ID:???] >>158 おまえがばかなだけじゃん
160 名前:NAME IS NULL mailto:sage [2007/05/23(水) 19:57:21 ID:???] >>157 SQL Server 2005 はデフォルトではネットワークからのアクセスを拒否するようになってますよ。 SQL Server 2005 Tips and Tips 第 1 回 ネットワーク接続を有効化しよう www.microsoft.com/japan/sql/ssj/tips/01.mspx
161 名前:NAME IS NULL [2007/05/23(水) 20:56:37 ID:nhV28SRP] <<152 ありがとうございます。返事が遅れてすみません。 SQLserverでよさそうですね。その方向で勉強してみます。
162 名前:153 mailto:sage [2007/05/24(木) 10:10:39 ID:???] >>160 神光臨! まさしくそれでした。ありがとうございました。 仮想コンピュータ上でですが、ACCESS2000のADPが問題なく動作 することを確認しました。
163 名前:NAME IS NULL mailto:sage [2007/05/24(木) 20:56:14 ID:???] >>162 お前…鯖2005のインストール終了した時に出るダイアログとかちゃんと読まなかったな?w
164 名前:NAME IS NULL [2007/05/25(金) 09:52:26 ID:OK4pQseG] 質問があります。 今、Access2000(adp:クライアント)+SQLExpress2005(サーバー)で、 仮称:注文管理システムを構築してます。 問題になっているテーブルですが、仮称で、 番号テーブル:A Aの中の列:a(注文番号)、int、NotNull 注文テーブル:B Bの中の列:b(注文番号)、int、NotNull、Primary(Key) とします。 aには、値2が入っているとします。 やりたいことは、 @.aの値をbにセットする。 A.aを1インクリメントして更新する。 という単純なロジックです。 そこで問題が出てしまったのですが、事前確認として、 テーブルAのaには2がセットされています。 Accessからみても、ManagementStudioからみても 2がセットされています。 1.SQLでAからa(注文番号)を取得 2.aをテーブルBのb列(注文番号)にセット 3.aを1インクリメントする 4.SQLでAをUpdateする をやったのですが、aにセットされていた2がbにセットされず、 実行するたびに、7,8,9,10・・・とAccessのオートナンバー型のように 勝手にカウントアップされてしまいます。 因みに、SQLServerはAccessのアップサイジングウィザードで作成しましたが、 オートナンバー型の列は一つもありません。 どうすればこの問題を解決できるのか是非御享受ください。お願いします。
165 名前:続き [2007/05/25(金) 09:56:06 ID:OK4pQseG] 7,8,9,10・・・とカウントアップされてしまうのは、SQLでaを取得した時に、2ではなく 増分値になっているところまではつきとめました。aフィールドに何か問題があるのかなと 思いました。 以上、よろしくお願い致します。
166 名前:NAME IS NULL mailto:sage [2007/05/25(金) 16:10:15 ID:???] >>164-165 ねえ、それで君の困ってる内容や、どうしたいかが僕に伝わると思う?
167 名前:NAME IS NULL mailto:sage [2007/05/25(金) 16:31:10 ID:???] まずこの2つのうちどっちができないんだ? @.aの値をbにセットする。 A.aを1インクリメントして更新する。 できないとしたら、どうなってほしいのにどうなってしまうんだ? とりあえず 1 はできないだろ、だってテーブル B を UPDATE してないしな。 2 の方はオートナンバー型のようにカウントアップされてるんだから、できてるんだろうな。 Access とか言ってるから、SQL Server というより、VBA とか ADO について聞いてるのか?
168 名前:164-165 [2007/05/25(金) 17:29:36 ID:UcPHyeKn] >>167 レスありがとうございます。 >>167 のAができません。 VBA・ADOは使っていますが、 SQLにセットされている値とSELECTした時の値が異なっており、 さらに後者については実行都度1ずつインクリメントされてしまいます。 この理由がわからないのです。 よろしくお願い致します。
169 名前:NAME IS NULL mailto:sage [2007/05/25(金) 19:57:00 ID:???] さっぱり判らんけど、Recordsetに値代入しても鯖のデータは変わんないし、 鯖のデータUpdateしてもRecordsetは自動更新されないよ。 (つうかもうADO忘れた。鯖2005+ADO.Net2.0ではデータ更新イベントを受け取れるらしいが。)
170 名前:NAME IS NULL mailto:sage [2007/05/25(金) 20:30:18 ID:???] さっぱりわからん。説明が下手すぎ。 いちいち質疑応答するのかったるいんで、とりあえずプロファイラしかけて VBA をデバッグ実行したら?どの VBA の行で SQL Server に UPDATE 文が 飛んできてるかわかるだろうよ。
171 名前:NAME IS NULL mailto:sage [2007/05/26(土) 11:17:08 ID:???] 最初:a=2 実行:b=a, a+=1; b=2, a=3 実行:b=a, a+=1; b=3, a=4 実行:b=a, a+=1; b=4, a=5 となるのは当然だと思うけど。
172 名前:NAME IS NULL mailto:sage [2007/05/26(土) 11:35:59 ID:???] SQLServer2005での質問なんですが、 ローカルパブリケーションを削除し、新規作成したところ、「ストアドプロシージャ '' が見つかりません」と表示され パブリケーションに失敗してしまいました。再起動すれば治るかもという安易な考えからSQLServerを再起動させたところ、 EnterpriseManager(ServerManagementStudio)から管理できなくなってしまいました(エラーがでてログインできない)。 --------------------- サーバとの接続を正常に確立しましたが、ログイン前のハンドシェイク中にエラーが発生しました。 (Provider: 共有メモリプロバイダ, error:0 - パイプの他端にプロセスがありません。) --------------------- いろいろ弄ったのですが原因がわからず、仕方なしにアンインストール→インストールを行いましたが 同じようなエラーが表示されてインストールできませんでした。 --------------------- SQL Serverセットアップは、サーバ構成のデータベースサービスに接続できませんでした。 エラー:[Microsoft][SQL Native Client]共有メモリ プロバイダ:パイプの他端にプロセスがありません。 --------------------- まったく原因がわからず困っています。 本番機へ移項前にテスト機で上記のエラーがでてしまったので、本番機へ移項することができません。 宜しくお願いします。
173 名前:NAME IS NULL mailto:sage [2007/05/26(土) 12:24:47 ID:???] Microsoft SQL Server 2005 用 Feature Pack- 2007 年 2 月 www.microsoft.com/downloads/details.aspx?FamilyID=50b97994-8453-4998-8226-fa42ec403d17&DisplayLang=ja 公開された日付 : 2007/05/25
174 名前:164-165 [2007/05/26(土) 12:36:09 ID:tHOS56YV] 文才がなくてすみませんでした。 SELECTすると、列の値と異なる値(インクリメントされた値)を取得してしまう というおかしな現象が発生しているんです。 なんとかまた自己解決にチャレンジします。
175 名前:NAME IS NULL mailto:sage [2007/05/26(土) 17:22:06 ID:???] >>174 SET TRANSACTION ISOLATION LEVEL SERIALIZABLE ってSQLを、ADOだろうと何だろうと一番最初に打ってみ。
176 名前:164-165 [2007/05/26(土) 18:42:10 ID:/8NdDjJH] >>175 ありがとうございました
177 名前:NAME IS NULL mailto:sage [2007/05/26(土) 20:59:28 ID:???] >>172 パイプの他端にプロセスがない場合のトラブルシューティング msdn2.microsoft.com/ja-jp/library/ms175496.aspx >>174 文才がない、と表現してしまうところに恐怖すら感じた。
178 名前:NAME IS NULL mailto:sage [2007/05/27(日) 22:02:43 ID:???] うちもパブリケーションで質問です。 新しくパブリケーションを発行しようとするとエラーがでます。 SQL Serverで、パブリケーション'test'を作成できませんでした。 追加情報: Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.ConnectionInfo) ストアドプロシージャ ''が見つかりませんでした。 ストアドプロシージャ ''が見つかりませんでした。 データベースコンテキストが'testdb'に変更されました。(Microsoft SQL Server、エラー:2812) SQL Serve 2005です。
179 名前:NAME IS NULL [2007/05/27(日) 22:30:10 ID:UJQa1vuC] express edition だと、エクセルファイルやCSVファイルのインポートはできないのですか?
180 名前:NAME IS NULL mailto:sage [2007/05/28(月) 01:34:43 ID:???] 質問です。 SQLServer2000にPHPからlocalhostで接続しようとしてるのですが、 Fatal error: Call to undefined function mssql_connect() サーバ名をlocalhostやIPアドレス、直接サーバ名を入れたりしたけど ダメでした。 また、別の環境でMSDE2000を使いPHPからlocalhost接続しようとしましたが、 やはりダメでした。 CSEやエンタープライズマネージャなどを使えば繋がってくれるのですが・・・ エロスの方教えてください。
181 名前:NAME IS NULL mailto:sage [2007/05/28(月) 09:13:27 ID:???] >>179 CSV は BCP コマンドを使ってできるが、Excel は BI 系ツールがついてないのでできない。 Excel のインポートは 2000 の DTS を使ってもできるので、2000 を持ってるならそれでやればいい。
182 名前:NAME IS NULL mailto:sage [2007/05/28(月) 09:17:06 ID:???] >>180 > Fatal error: Call to undefined function mssql_connect() と出てることから、SQL Server の問題ではない。 SQL Server に接続するための関数 mssql_connect が呼ばれたけど、そんな関数ないよと言っている。 DB に接続するための PHP のライブラリが正しくインストールされていないと思う。
183 名前:NAME IS NULL mailto:sage [2007/05/28(月) 09:18:04 ID:???] >>178 sa または DB サーバーの Administrator でログインしてやってみるといいかも
184 名前:NAME IS NULL mailto:sage [2007/05/28(月) 11:32:36 ID:???] >>183 Administratorでログインしてやっているんですが。 原因がわからずです。
185 名前:NAME IS NULL [2007/05/28(月) 12:12:31 ID:nux3andD] >>182 アドバイスありがとうございます。 ライブラリは入ってると思います(リモートサーバーには何故か問題なく 接続できるのです^^;)
186 名前:NAME IS NULL mailto:sage [2007/05/28(月) 12:30:51 ID:???] >>185 そうですか。リモートサーバーに接続する時は mssql_connect() を使っていないということはありませんか? 私は PHP は使わないのでよく知りませんが。 どちらにせよ直接的に問題を解決したいならプログラムから mssql_connect() を参照できるようにするしかありませんね。 もしくはローカルとして指定するのではなくて、コンピュータ名で指定するとか。
187 名前:NAME IS NULL mailto:sage [2007/05/28(月) 12:37:51 ID:???] >>184 原因はデータベースの sys.sp_addpublication を呼び出したが、そのストアドプロシージャがみつからないか sp_addpublication の中で呼ばれる SP が見つからないか、でしょう。 変だな、と思うのはエラーメッセージの sp 名がブランクであることです。 普通はここには SP の名前が入るはずです。 (ためしに存在しない SP を exec してみるとわかります) sp_addpublication は sysadmin/db_owner でないと呼び出せないので、まずセキュリティの問題を疑いました。 セキュリティの問題でないのならば、データベースの SP が壊れているのかもしれないのですが、これ以上は確実なことはわかりません。 この手のエラーならイベント ビューアにログが出ているでしょうから、そのメッセージでぐぐったりして調べるしかないと思います。
188 名前:NAME IS NULL mailto:sage [2007/05/28(月) 13:44:12 ID:???] >>187 レスありがとうございます。 いろいろ試したりしたのですが、いまいちよくわかりません。 ただ、もとの原因となったであろう行動は特定できたので、報告します。 古いサーバ上のデータベースをデタッチしたものを、新しくたてたサーバにアタッチしたのですが その際に、古いサーバのサブスクリプション情報も新しいサーバに渡されたようです。 古いサーバ +レプリケーション +ローカルパブリケーション +[testdb]: [test] +ローカルレプリケーション +[testdb2] - [oldserver].[testdb]: [test] となっていたものをデタッチ→アタッチすると 新しいサーバ +レプリケーション +ローカルパブリケーション +ローカルレプリケーション +[testdb2] - [oldserver].[testdb]: [test] となりました。 ローカルパブリケーションを新しく作成しようとした際に、>>178 のエラーが表示されました。 いろいろ試した結果、データベースのデタッチ→アタッチではなく、データのコピーのみを行うことによって ちゃんとパブリケーションを作成することができました。
189 名前:NAME IS NULL mailto:sage [2007/05/28(月) 16:01:45 ID:???] >>188 ああ、なるほど。 デタッチ/アタッチしてコンピュータ名とかが変わってるのにレプリケーションの情報が古かったのね。 そういうときは sp_removedbreplication して設定を全部消せばいいと思う。
190 名前:NAME IS NULL mailto:sage [2007/05/28(月) 16:36:32 ID:???] >>189 ありがとうございます。 sp_removedbreplicationをしたほうが、早く移項できました。
191 名前:NAME IS NULL mailto:age [2007/05/29(火) 12:58:56 ID:???] >>177 まあなんだ、うんこ製造機は氏ね
192 名前:NAME IS NULL mailto:sage [2007/05/30(水) 00:04:54 ID:???] >>164 www.sqlpassj.org/bbs/bbs_disp.aspx?forum_id=1¤t_page=1&disp_mode=2&detail_mode=1&message_id=4558
193 名前:NAME IS NULL mailto:age [2007/05/30(水) 17:48:35 ID:???] なんだ、こんなとこよりPASSJの方がレスついていいじゃん
194 名前:NAME IS NULL mailto:sage [2007/05/31(木) 01:38:10 ID:???] SQLServer 7.0と2005の間でレプリケーションって 組めるのかしら? 2005のGUIから7.0に繋がらんっす
195 名前:NAME IS NULL mailto:sage [2007/05/31(木) 03:22:21 ID:???] >>194 できる。ただし制限はある。そして SSMS は SQL Server 7.0 に接続して管理することはサポートしていない。 これらのことは次のページに書かれている。 レプリケーション トポロジにおける複数バージョンの SQL Server の使用 msdn2.microsoft.com/ja-jp/library/ms143241.aspx
196 名前:NAME IS NULL mailto:sage [2007/05/31(木) 12:56:58 ID:???] GUI繋がらないとなると T-SQL手打ち?
197 名前:NAME IS NULL mailto:sage [2007/05/31(木) 14:40:57 ID:???] >>196 SQL Server 2000/7.0 のクライアント ツール (Enterprise Manager) をインストールするか、osql/isql/sqlcmd を使って T-SQL コマンドを実行する。 Enterprise Manager も SSMS も UI で操作されたら T-SQL コマンドを実行しているだけなので、何を使おうがデータベースから見ればやってることは一緒です。
198 名前:NAME IS NULL mailto:sage [2007/05/31(木) 19:13:05 ID:???] 初心者で申し訳ありません。2005のレポーティング機能について学習しているのですが、 何かおすすめの書籍やサイト等、ありませんでしょうか? 機能についてと、外部アプリからの連動について詳しいと有難いです
199 名前:NAME IS NULL mailto:sage [2007/05/31(木) 20:07:14 ID:???] >>198 Books Online のチュートリアルとサンプル Reporting Services のチュートリアル msdn2.microsoft.com/ja-jp/library/ms170246.aspx SQL Server Reporting Services サンプル msdn2.microsoft.com/ja-jp/library/ms160954.aspx
200 名前:NAME IS NULL mailto:sage [2007/06/01(金) 07:30:50 ID:???] >>199 早速ありがとうございます。参考にさせていただきます
201 名前:NAME IS NULL mailto:sage [2007/06/03(日) 20:55:36 ID:???] アプリケーションがどのテーブルを利用しているのか 調べようとしてます。 SQLプロファイラで監視して中身見ればどのテーブル利用したか 解析可能ですか? システムDBとユーザDBどちらを使ってるかまでわかれば 尚よしなのですが。
202 名前:NAME IS NULL mailto:sage [2007/06/04(月) 01:19:47 ID:???] >>201 まずやってみて、それで自分の期待したものが取れなかったらまた来てください。
203 名前:NAME IS NULL mailto:sage [2007/06/04(月) 16:33:50 ID:???] 質問です。 VB.NETでSQLデータベースのテーブルを 検索・選択することには成功しました その上で、選んだデータベースの中の列名をプログラム上で 検索するにはどうしたら良いでしょうか? 列名や行の場所をそのまま打ち込んで中のデータ習得には成功しているのですが・・・
204 名前:NAME IS NULL mailto:sage [2007/06/04(月) 16:58:53 ID:???] へ?
205 名前:NAME IS NULL mailto:sage [2007/06/04(月) 18:46:38 ID:???] >>203 多分、いまはカラムをインデックスで指定しているけども、列名で指定したいっつー質問なんだろな。 で、それは SQL Server じゃなくて ADO.NET の質問だからこっちで聞いてくれ。 pc11.2ch.net/test/read.cgi/db/1104630889/ あと、今どうやってるかと、何の本/サイトを見て今まで知識を得たか書いた方がいいぞ。 例えば SQLClient.Connection.なんたらのなんとかメソッドとかプロパティを使ってるとか、な。 まあ、コードを貼ってもらえればいいんだが、よけいなところは取り除くんだぞ。
206 名前:NAME IS NULL mailto:sage [2007/06/04(月) 19:45:58 ID:???] sp_columnsって話じゃね?
207 名前:NAME IS NULL mailto:sage [2007/06/04(月) 19:55:12 ID:???] ADO.NETでWindowsアプリ作ってるけど>>203 の質問がサッパリ理解できない
208 名前:205 mailto:sage [2007/06/04(月) 22:05:49 ID:???] 俺も正直わからんよw 本音を言えばまず隣の席の人と話してみ?と言いたいww
209 名前:NAME IS NULL mailto:sage [2007/06/04(月) 23:53:42 ID:???] >201です。 やってみました。 取れてたトレース内容の一部が以下です。 RPC:Completed 11 2007-06-01 19:13:59.623 declare @P1 int set @P1=180150055 declare @P2 int set @P2=1 declare @P3 int set @P3=4 declare @P4 int set @P4=1 exec sp_cursoropen @P1 output, N'SELECT ID,COMPGUID,STNAME,SQLNAME,STFLAGS,STMAXID,CLASSCAT,CLASSID,OBJCAT,OBJSTID,OBJPLCAT,OBJPLSTID FROM CTABLES WHERE ID = @P1', @P2 output, @P3 output, @P4 output, N'@P1 int', 70 select @P1, @P2, @P3, @P4 他にも色々あったのですが、とりあえずこれだけ抜き出してみた時に 以下はあってますか? ・テーブルはCTABLES ・declareで変数を定義 ・setで代入する値を定義 不明点は ・テーブルCTABLESはmasterDBとユーザDBの両方にあるのでどちらかわからない ・テーブルの中を見てもレコードが更新されているようには見えない。 declareがあるやつはみんなレコード更新されているかと思ったのですが exec sp_cursoropen以降の分を読み解けてないですか?
210 名前:NAME IS NULL mailto:sage [2007/06/05(火) 07:55:04 ID:???] >>209 アタマイタイ・・・ > declareがあるやつはみんなレコード更新されているかと思ったのですが なんでそう思ったの? > exec sp_cursoropen以降の分を読み解けてないですか? ストアドプロシージャって知ってる? Books Online って知ってる?
211 名前:NAME IS NULL mailto:sage [2007/06/05(火) 21:05:45 ID:???] MS SQL Server 2000 で重複データの削除を行いたいのですが、処理が遅く困っています。 現状 Delete from TblA Where exists ( Select * from TblB Where TblA.Key1 = TblB.Key1 and TblA.Key2 = TblB.Key2 ) Insert into TblA Select * from TblB TblAとTblBはまったく同じ構造です。 最終的に、TblBの内容をTblAにInsert(同一キーはTblBの内容に上書き)できれば良いのですが、 なにかよい方法はないでしょうか。
212 名前:NAME IS NULL mailto:sage [2007/06/05(火) 21:30:17 ID:???] Delete TblA from TblB Where TblA.Key1 = TblB.Key1 and TblA.Key2 = TblB.Key2 とも書けると思うが、インデックスはちゃんとついてるんだろうな?
213 名前:NAME IS NULL mailto:sage [2007/06/05(火) 21:47:45 ID:???] >>212 さっそくのアドバイスありがとうございます。そういった書き方があったのですね。 早速試してみたいと思います。
214 名前:NAME IS NULL mailto:sage [2007/06/06(水) 16:03:34 ID:???] ごめん、教えてほしい。 SQLsever2005でテーブル上で定義できるフィールドの数っていくつまでだっけ? 2000だと255だか254のはずなんだが。
215 名前:NAME IS NULL mailto:sage [2007/06/06(水) 20:16:38 ID:???] >214 1000くらい。 SQLServer2000でも同じ。 フィールド数の上限よりも先にレコードのサイズの上限に引っかかるわけだが。
216 名前:NAME IS NULL [2007/06/06(水) 20:30:29 ID:CRQWegaj] すみません、教えてください。 SQLserver2005でバックアップしたDBを 下位のSQLserver2000にリストアできるのでしょうか?。
217 名前:NAME IS NULL mailto:sage [2007/06/06(水) 20:39:54 ID:???] >>216 > SQLserver2005でバックアップしたDBを > 下位のSQLserver2000にリストアできるのでしょうか?。 できません
218 名前:NAME IS NULL mailto:sage [2007/06/06(水) 22:17:16 ID:???] >>214 SQL Server 2000/2005 共に 1,024 (=2^10) です。 その他の最大容量仕様は次のリンクに一覧になっています。 SQL Server 2005 の最大容量仕様 msdn2.microsoft.com/ja-jp/library/ms143432.aspx 最大容量仕様(SQL Server 7.0/2000) www.microsoft.com/japan/sql/prodinfo/previousversions/Specmax.mspx キーワードは 最大 容量 仕様 です。忘れた場合はこのキーワードで BOL を検索してください。
219 名前:NAME IS NULL mailto:sage [2007/06/07(木) 06:31:53 ID:???] >>214 コボラ乙
220 名前:NAME IS NULL [2007/06/08(金) 15:42:13 ID:nSaiK7ce] Access から SQL Serverへアップサイジングしたが、 動作がより緩慢になってしまった。。 VB6アプリとAccessのクラサバで10-20人程度で利用していた時は、 20万件程度の蓄積データがあったんだけど、2〜3秒掛からない程度で データ登録や検索とかが出来ていたんですが、MSSQLになって、 これが4〜5秒、酷い所では7〜8秒掛かるようになってしまった。。 変更後はこの様になっています。 以前:Access→VB6アプリ 現在:MSSQL→Access(リンク/クエリ)→VB6アプリ あんまりMSSQLに関して詳しく無いので、当りが付けられません。 Accessからの移行で遅くなった場合、どこら辺に問題ありそうか 教えていただけないでしょうか?
221 名前:NAME IS NULL mailto:sage [2007/06/08(金) 16:17:54 ID:???] >Access(リンク/クエリ) VB6使ったことないんで適当ですまんが、ここが無駄なんでね? ↓はAccessからPostgresqlへの移行だけど、参考になるかもしれない www.jade.dti.ne.jp/kamada/access_and_postgres/linktable.htm
222 名前:NAME IS NULL mailto:sage [2007/06/08(金) 17:02:26 ID:???] >>221 お宝文書ありがとう御座います。 まだざっとしか読んでいませんが、非常に参考になります。 これはちょっと根が深そうで、ちょっとした修正では駄目かも 知れないですね。。。ぁぁ テストで作った同じ内容の普通のクエリとパススルークエリを 比べてみると明らかにパススルークエリの方が遅いんですよ〜。 (参照はありますが、計算もしていない簡単な構文です。) 本当DBって難しい。
223 名前:NAME IS NULL mailto:age [2007/06/08(金) 17:23:48 ID:???] >>219 コボラを馬鹿にしてるおまえは、無教養禿げ、氏ね
224 名前:NAME IS NULL [2007/06/08(金) 21:01:03 ID:DbmSpgZ2] 超初心者からのSQL SERVER 2000について質問です。 機密情報(社員情報)が格納されているテーブルに 悪意を持ったユーザがアクセスした場合に(ADO、o-sql、 ODBC等のツールを使用して)、Windowsのイベントログへ 警告を出力させたいのですが、どのような設定が必要で しょうか? よろしくお願いします。
225 名前:NAME IS NULL mailto:sage [2007/06/08(金) 22:47:48 ID:???] >>224 悪意を持ったユーザーとそうでないユーザーをどうやって見分けるつもりなの?
226 名前:NAME IS NULL mailto:sage [2007/06/08(金) 22:49:45 ID:???] あなたは悪意を持ったユーザーですか?(y/n)
227 名前:NAME IS NULL mailto:sage [2007/06/08(金) 22:51:57 ID:???] >>222 そりゃ、一個やることが増えたんで遅くなるのは当たり前じゃないの? 単純な処理の場合、接続の方がコストがかかるので、接続が増えたら遅くなるでしょ。 SQL Server に命令が来てからそれを返すまでどれくらい時間がかかってるかは SQL プロファイラで調べられるよ。
228 名前:224 [2007/06/08(金) 22:58:57 ID:DbmSpgZ2] >>225 コトバ足らずですみません。 「悪意をもったユーザ」というよりは、クエリアナライザ等、 SQL SERVERの機能以外を使用して、機密情報テーブルへアクセス するユーザのことです。 何卒、お知恵の拝借をお願いします。
229 名前:NAME IS NULL mailto:sage [2007/06/08(金) 23:26:40 ID:???] >>228 素直にSQLServerが使用するポート以外閉じておけば?
230 名前:NAME IS NULL mailto:sage [2007/06/09(土) 01:14:50 ID:???] >>220 つーかVB6からMSSQL直接叩けよ! リンクなんかしてると移行した意味ねーじゃん!
231 名前:NAME IS NULL mailto:sage [2007/06/09(土) 01:57:51 ID:???] >>228 osqlやクエリアナライザは正当なSQLServerのクライアントなのだが。 専用クライアント以外は繋がせたくないってことであれば うちは定期的にsp_who2をかけて所定のアプリ以外の接続があったら 管理者に警告メールが来るようジョブを作ってた
232 名前:NAME IS NULL mailto:sage [2007/06/09(土) 05:17:41 ID:???] >>228 アプリケーション ロールを使え。 あと、言葉たらずじゃないよ。足りないのは知識です。 "SQL Server 2000 でいってみよう" くらい読めよ。簡単なんだから。
233 名前:228 [2007/06/09(土) 18:22:40 ID:Y7nuDHpZ] >>231 >>232 ありがとうございます。 早速、実践します。
234 名前:NAME IS NULL [2007/06/12(火) 12:04:52 ID:3CcBW2In] Enterprise Manager(DBは2000)の管理−プロセス情報と見ると、地球のマークが 光っているプロセスIDが20件程度あり、その中で状態がrunnableで待機時間が9000000を 超えている物もあります。 待機の種類はNETWORKIOとなっており、CPU/メモリも多少使っている様子です。 ただ、ブロッキングなどはされていない様です。 この「状態がrunnableで待機時間が9000000」と言うのは、どういう状態で 起こっている事なのでしょうか。 何か情報を持っている方、教えてください。 よろしくお願いします。
235 名前:NAME IS NULL mailto:sage [2007/06/12(火) 12:14:01 ID:???] >>234 気にするな。プロセス ID 50 以下はシステムが使ってるものだから、初心者は気にしなくていい。 どうしてもっつーんなら、select * from master..sysprocesses の結果をテキストでさらしてマターリと待て。
236 名前:234 mailto:sage [2007/06/12(火) 12:32:24 ID:???] >>235 ありがとうございます! とりあえずは、気にせず突っ走ります。
237 名前:使えない子 mailto:sage [2007/06/14(木) 06:30:10 ID:???] オハヨウゴザイマス〜助けてください〜(´Д`;) SQL Server 2000で、 「バックアップを”サイクリックに”とる方法を調べて」 と指示され、[SQL Server バックアップ サイクリック]等の組み合わせで 検索して片っ端から探したつもりなのですが、どうしても見つからないです〜 どなたかお力添えを〜(´人`;)
238 名前:NAME IS NULL [2007/06/14(木) 06:46:47 ID:696P34JJ] >>237 バックアップの定期スケジューリングを設定すればよいのでは? ・・・そんな簡単なコトじゃないのかな?
239 名前:237 mailto:sage [2007/06/14(木) 09:01:59 ID:???] >>238 お返事ありがとうございます〜(´Д`;) 例えば毎日のバックアップで、 バックアップファイルを日付で管理して1ヶ月サイクルで上書きしていく、 (つまり、常に今日から1ヶ月前までのバックアップが残る) というような方法をとりたいのです。m(_ _)m
240 名前:NAME IS NULL mailto:sage [2007/06/14(木) 09:07:17 ID:???] バッチファイルかSPを書かないと無理じゃないかね
241 名前:237 mailto:sage [2007/06/14(木) 10:04:47 ID:???] >>240 あわわ、なんだか難しそうですね(゚Д゚||) こんな方法を考えてみました。 Enterprise Managerを使ってスケジューリングし、 例えば1週間分のバックアップをサイクリックにとるとしたら、 1週間おきにバックアップをとるスケジュールを7つ設定して、 それぞれ違う曜日に発動するようにする、 といった方法で・・・1ヶ月のサイクルだと31個も作るので 大変だとは思いますが・・・これで実現できるでしょうか・・・?(´Д`;)
242 名前:237 mailto:sage [2007/06/14(木) 10:45:22 ID:???] たびたびすみません!!!! データベース保守計画ウィザードというので目的は解決したっぽいです。 が! ウィザード終了時にSQLSERVERAGENTサービスが停止されたのですが、 これはほっといても、スケジュールの時間が来れば自動的に起動するのですか・・・? 管理ツールでサービスをみると、「手動」になっているのですが・・・。 ほんと、 使えない教えて君っ子ですみません。m(_ _)m
243 名前:NAME IS NULL mailto:sage [2007/06/14(木) 11:12:10 ID:???] 自分で起動すればいいじゃない
244 名前:237 mailto:sage [2007/06/14(木) 11:18:54 ID:???] >>243 りょ、了解です〜!! とりあえず開始してみました! 無事動きますように・・・ナムー (-人-)
245 名前:NAME IS NULL mailto:sage [2007/06/14(木) 19:12:46 ID:???] SQL Server Agent は設定した時間が来ても自動的には起動しない。 だからスタートアップの種類を自動に変更しなければならない。 SQL Server Agent が起動されていなければ、設定した時間が来てもジョブや保守計画は実行されない。
246 名前:NAME IS NULL mailto:sage [2007/06/15(金) 08:50:20 ID:???] 説明乙 でも、手動って、そういうことでしょ? 自動で起動することをそもそも手動とはいわない
247 名前:NAME IS NULL mailto:sage [2007/06/15(金) 17:58:03 ID:???] SQLServer2005の64bitの導入を検討してます。 現行 クライアント:VB6 + ADO2.7 サーバー:Windowsk2003 + SQLServer2000 32bit で運用しているのですが、SQLServer2005の64bitに移行して、アプリ変更無しで動くのでしょうか? サーバーはSQLServerのみでVB6のアプリを動かすことはありません。 愚問ですが、どなたかご教授ください。
248 名前:NAME IS NULL mailto:sage [2007/06/15(金) 20:17:07 ID:???] >>247 動きますけど何を心配しているのですか? こういうことのために "プロトコル" というものがあるのです。 Web サーバーが 64bit だからって、ブラウザと Web サーバーの通信は HTTP で変わりません。 それと同様、データベース接続ドライバとデータベース間ではプロトコルがあり、通信を行っています。 極論すればデータベースとクライアント間では SQL 文字列を送って結果をもらってるだけで、 さほど複雑なことをやってるわけではありません。
249 名前:111 [2007/06/19(火) 06:22:32 ID:sP4zNuhP] >>125 返事が大変遅れて申し訳ありません。 mdfをアタッチしてsqlcmdで実行してみたところ、意図したとおりの動作をしてくれました。 ただし、VS2005で実行してみるとやはり該当する行がないと怒られます。 プログラム内から呼び出してもやはり意図したとおりには動かないので、 インターフェースがうまくいってないのかもしれません。 たとえば、タグ一覧を表示する以下のストアドプロシージャは 該当する行はないと言っておきながら、@@ROWCOUNTだけは意図した通りに 返ってきます。 SELECT Tags.* FROM Tags RETURN @@ROWCOUNT ADO.NETとかのバグなのだろうか…
250 名前:111 mailto:sage [2007/06/19(火) 06:23:24 ID:???] あ、あげてしまった。
251 名前:NAME IS NULL mailto:sage [2007/06/19(火) 08:57:27 ID:???] >>249 普通に考えてVisualStudioのバグか制限だろ
252 名前:NAME IS NULL [2007/06/19(火) 10:07:42 ID:8pVDjV9H] SQL Server 2005に入っているテーブルの定義書を エクセルファイルなどに出力する機能は、SQL Server自体に 存在しますか?あったら、教えて下さい。
253 名前:NAME IS NULL mailto:sage [2007/06/19(火) 10:11:19 ID:???] >>252 ない。うちの社内でそういうツールを作ってた人がいたんで、フリーウェアであるんじゃない?
254 名前:NAME IS NULL [2007/06/19(火) 10:16:09 ID:8pVDjV9H] >>252 どうもです。
255 名前:254 mailto:sage [2007/06/19(火) 10:17:02 ID:???] >>252 → >>253
256 名前:NAME IS NULL mailto:sage [2007/06/19(火) 10:24:03 ID:???] >>249 オレだったら問題を再現させるプログラムを作ってMSDNで問い合わせるなぁ。 多分ドライバじゃなくてクラスの挙動がおかしいんで、ASP.NETじゃなくてフォームでも同じ問題がおきるだろうから、つくるのは簡単だろ。 自分でできることはとりあえず.NET FrameworkのSPを最新にして、hotfixをさがす、かな。
257 名前:NAME IS NULL [2007/06/19(火) 11:32:40 ID:8pVDjV9H] SQL Server 2005 で サーバー間で実データはコピーせずに、テーブル構造だけ コピーしたいのですが、テーブル単位ではなく、DB単位で コピーする方法を教えてください。
258 名前:NAME IS NULL [2007/06/19(火) 15:04:34 ID:BokQHzhb] 質問です 現在の日付から20日以内のものだけセレクトするSQL文を教えてください
259 名前:NAME IS NULL mailto:sage [2007/06/19(火) 15:08:52 ID:???] >>257 Management Studio を SP2 にしてデータベースを右クリック→タスク→スクリプトの生成
260 名前:NAME IS NULL mailto:sage [2007/06/19(火) 15:15:44 ID:???] >>258 -- 今から 20 日前の日時を返す SELECT DATEADD(day, -20, GETDATE()) -- YourTable.DateTimeColumn が 20 日前〜現在の行を返す SELECT * FROM YourTable WHERE DateTimeColumn BETWEEN DATEADD(day, -20, GETDATE()) AND GETDATE() 丸めは自分で調節してください。
261 名前:NAME IS NULL [2007/06/19(火) 15:26:16 ID:BokQHzhb] ありがとうございます
262 名前:NAME IS NULL [2007/06/19(火) 15:44:09 ID:8pVDjV9H] >>259 ありがとうございます。うまくいきました。
263 名前:NAME IS NULL [2007/06/19(火) 20:02:44 ID:vSZN4us0] >>220 >Access から SQL Serverへアップサイジングしたが、 >動作がより緩慢になってしまった。 私の会社で移行しましたけど、かなり動きが速くなりました。 クラスタ化インデックスと非クラスタ化インデックスの違いとかわかりますか? その辺りの設定をしないといけないのですが…。 後はACCESSのクエリー(SQL)の見直しですね。 特定のクエリーで止まっている可能性もあるので それを一つ一つ潰していけば速くなりますよ。
264 名前:263 [2007/06/19(火) 20:17:43 ID:vSZN4us0] ACCESSの「インデックス」と言うと一つの設定しかないから見逃し易い。 あと途中のレスでもあるけど、VB6から直接SQL SERVERに接続すると 速いです。ACCESSのODBC経由だと遅くなりがち。 そもそもACCESS自体が重い。
265 名前:111 mailto:sage [2007/06/21(木) 14:48:58 ID:???] ありがとうございました。 なぜだかよく分からないのですが、いろいろ触っているうちに動くようになりました。 確実な原因は二つあったみたいです。 まず、IDEの問題。これはIDE側の右クリック→実行ではuniqueidentifier型 のフィールドを含むデータを表示できなかったようです。(バグか仕様かは分かりませんが) これは後でMSに報告しておこうと思います。 もうひとつは、データを取得するコードが間違っていたようです。 ただこれがちょっと腑に落ちないのですが(ほかの場合はちゃんと動作する コードなので)、それはともかくDataGridを使用すると正常に取得できる ことを確認しました。 みなさんのご協力に感謝します。大変助かりました。
266 名前:NAME IS NULL mailto:age [2007/06/22(金) 14:44:14 ID:???] ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ ビチビチウンコ
267 名前:NAME IS NULL [2007/06/23(土) 03:29:32 ID:Pc5ke7Ie] すんません、updateの副問い合わせについて質問なんですが。 update a2 set rank = ( select count(*) from aa as a1 where 〜 ) from aa as a2 どんな意味なんでしょうか?('A`)
268 名前:NAME IS NULL [2007/06/23(土) 10:36:11 ID:W8GXpRZs] プロファイラについて初歩的な内容を教えてください。 フィルタによる複数の項目を条件により絞込みをする場合、 AND条件なのかOR条件なのか、どちらなのかを教えてください。 実際に試してみると、AND条件のような気がするのですが、 裏付け(BOOKS ON LINE等)がないので質問いたしました。 どなたか、教えて頂けませんか?よろしくお願いします。
269 名前:NAME IS NULL [2007/06/23(土) 10:38:43 ID:Qpvn0v6w] 変態キモ女はMac使いwww ■ おすすめ2ちゃんねる 開発中。。。 by FOX ★ このスレを見ている人はこんなスレも見ています。(ver 0.20) 痴女達によるおちんちん鑑定団 part2 [女性] Mac OS X初心者質問用スレ 22.3 [新・mac] あなたのおちんちん診察します [医歯薬看護] 満足するペニスサイズ [女性] 【♂増強】ペニス増大法を語ろう 24mm【エクササイズ】 [身体・健康] life8.2ch.net/test/read.cgi/diet/1181982908/l50x
270 名前:NAME IS NULL mailto:sage [2007/06/23(土) 18:33:28 ID:???] >>267 テーブル aa のフィールド rank の値をサブクエリの結果で更新する
271 名前:267 [2007/06/24(日) 10:09:36 ID:uWxZr8d/] >>270 すんません、書き方が悪かったです。 where句がサブクエリの中にしかないのですが。 これって全件更新になってしまわないのでしょうか。 どうも、ある条件で更新されているようではあるのですが。。
272 名前:NAME IS NULL mailto:sage [2007/06/24(日) 16:02:24 ID:???] >>271 全件更新するように見えるよ。
273 名前:NAME IS NULL mailto:sage [2007/06/24(日) 19:09:05 ID:???] >>268 or
274 名前:267 mailto:sage [2007/06/24(日) 20:15:48 ID:???] サブクエリ内の抽出結果は0〜複数件がありえます ちなみに現行では0件しか出てないみたいですが。 複数件抽出された場合どうなるんですかね。 サブクエリ内の条件で抽出した結果でそのサブクエリ内の条件に一致するレコード更新が行なわれているとすれば 納得いったのですが。。 やっぱり違ったんでしょうかね。。 明日一日悩むことになりそう( ´Д` )
275 名前:NAME IS NULL mailto:sage [2007/06/24(日) 22:32:19 ID:???] select count(*) ↑なら常に1件しか返さないはずなんだが質問の条件をわざと隠して聞いているのか?
276 名前:267 mailto:sage [2007/06/24(日) 23:06:11 ID:???] ああ、count(*)だから1件ですか そうですね、、1件ですね。<勘違いしてました つーことはやっぱ全件更新なんですよね。 ありがとうございます。もっかいソース解析しなおします(つA`)
277 名前:NAME IS NULL mailto:sage [2007/06/25(月) 07:45:15 ID:???] 職場の隣の席の女子が定時を過ぎて 「まだ帰らないんですか」とか「今日は帰りが遅いんですか」とか 「今日はこのあと用事あるんですか」とか「おなか空きましたね」とか やたらと言ってくるから、じゃあ呑みにでも行きますかって言ったら、 「あ、私、習い事があるんで無理です」って言われて、ビックリした。 一瞬なにが起きたのかわからなかった。 横断歩道で青信号だと思って渡ろうとしたらトラックにはねられた人の気持ちになったわ。
278 名前:NAME IS NULL mailto:sage [2007/06/25(月) 09:11:41 ID:???] 職場の隣の席の女子が定時を過ぎて に一致する日本語のページ 約 921 件中 1 - 10 件目 (0.15 秒) www.google.co.jp/search?hl=ja&q=%E8%81%B7%E5%A0%B4%E3%81%AE%E9%9A%A3%E3%81%AE%E5%B8%AD%E3%81%AE%E5%A5%B3%E5%AD%90%E3%81%8C%E5%AE%9A%E6%99%82%E3%82%92%E9%81%8E%E3%81%8E%E3%81%A6&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
279 名前:NAME IS NULL mailto:sage [2007/06/26(火) 14:06:24 ID:???] 質問です SQL Server2005で 作成済みテーブルの Create Table を取得できるクエリってありませんか? ストアドなら select definition from sys.all_sql_modules where object_id = ( select object_id from sys.objects where name = 'ストアドの名前') とかで取れるんですけど。。。
280 名前:NAME IS NULL mailto:sage [2007/06/26(火) 16:45:48 ID:???] >>279 まねずめんとすたじおでテーブル右クリ-編集 ただし最新版じゃないと編集ってのがでてこない
281 名前:NAME IS NULL mailto:age [2007/06/27(水) 18:35:06 ID:???] PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ PGなんかビチビチウンチ
282 名前:NAME IS NULL mailto:age [2007/06/29(金) 13:42:22 ID:???] 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸 睾丸
283 名前:NAME IS NULL mailto:sage [2007/06/30(土) 06:47:39 ID:???] SQLServerを弄りはじめているのですが、 SQL構文が今まで使ってきたDBと若干違うため、 戸惑っています。 Transact-SQLの構文リファレンスの書籍があったら 教えてください。
284 名前:NAME IS NULL mailto:sage [2007/06/30(土) 09:05:10 ID:???] >>283 Books Online go.microsoft.com/fwlink/?linkid=50478 これが嫌ならその理由、使っているバージョン、前に使っていた DBMS、あなたのレベル、やりたいことなどを教えてくれ。
285 名前:NAME IS NULL mailto:sage [2007/06/30(土) 15:54:52 ID:???] >>284 情報ありがとうございました。 最高の情報です。
286 名前:NAME IS NULL [2007/07/02(月) 00:34:29 ID:+ZeJbjhI] すいません質問です データベースをテーブルを使って入力しているんですが 入力時にデータがTITLE順に並んでいるのをLocation順に表示させたいのですが どうすればよいのでしょうか
287 名前:NAME IS NULL mailto:sage [2007/07/02(月) 01:05:34 ID:???] >>286 お前が使ってるシステムの詳細は誰も知らないんだから 知らない人間に分かるように質問してくれ
288 名前:NAME IS NULL [2007/07/02(月) 01:26:58 ID:+ZeJbjhI] これ以上どう説明していいのやらわからないんです><
289 名前:NAME IS NULL mailto:sage [2007/07/02(月) 01:34:12 ID:???] それじゃ答えようがないです><
290 名前:NAME IS NULL mailto:sage [2007/07/02(月) 01:51:45 ID:???] まずは同じ職場の人に聞いてみることだな。
291 名前:NAME IS NULL mailto:sage [2007/07/02(月) 13:33:05 ID:???] Locaton順にソートさせればいいよ!
292 名前:NAME IS NULL mailto:sage [2007/07/02(月) 13:44:16 ID:???] >>286 TITLE欄にLocationも一緒に入れれば? 01:XXXXXX とか。
293 名前:NAME IS NULL mailto:sage [2007/07/02(月) 13:51:05 ID:???] select * from hoge order by Location
294 名前:NAME IS NULL [2007/07/03(火) 00:41:36 ID:tgazdh0o] >>293 さん 多分、286さんから、追加注文来るよ。 他のフィールドは降順にしたいとか・・・。
295 名前:NAME IS NULL mailto:sage [2007/07/03(火) 01:03:51 ID:???] SQLすら書けなさそうだから問題ない
296 名前:286 [2007/07/03(火) 01:49:51 ID:JK2HUr+d] ふおーもう駄目じゃあああ><
297 名前:286 [2007/07/03(火) 02:26:12 ID:JK2HUr+d] と思ったら>>293 の通りにやったらできた!ありがとうごましました!
298 名前:293 mailto:sage [2007/07/03(火) 10:04:25 ID:???] 皮肉のつもりで書いたのだが、 それで正解なのかよw
299 名前:NAME IS NULL mailto:sage [2007/07/03(火) 10:57:45 ID:???] 286、今年からDB触り始めた新入社員にしても少し成長が遅い気が...w
300 名前:NAME IS NULL [2007/07/03(火) 16:23:24 ID:WJx9EhHL] 初心者向けの本、探してんだけど、 Microsoft SQL Server 2005 Express Edition For Dummies ってどう? > 読んだ人 アドミニ系とプログラム系が適度に纏まっていて(といっても 400頁もあるよ orz)、よさげなんだが。 他にもいろいろと… www.amazon.com/s/ref=nb_ss_gw/104-5039913-3895963?url=search-alias%3Dstripbooks&field-keywords=Sql+server イパーイ読むのは嫌なんで(つか、読めない)、なるだけ短いのがいいんだが、 アドミニ/プログラム両方だと400ページって最低量なんかな ほかにお勧めある? (内容が良ければ、和書でもOk)
301 名前:NAME IS NULL mailto:sage [2007/07/03(火) 16:27:59 ID:???] >>300 dummiesは可もなく不可もなく。 斜めに読んだ感想。 というか、目的がわからんからアドバイスできんわな。
302 名前:NAME IS NULL mailto:sage [2007/07/03(火) 17:01:33 ID:???] SQL Server 2005 および SQL Server 2000 での JIS X 0213:2004 (JIS2004) 対応に関するガイドライン www.microsoft.com/downloads/details.aspx?FamilyID=e942342a-719f-4841-a9d2-f6d9fd58299f&DisplayLang=ja
303 名前:NAME IS NULL mailto:sage [2007/07/03(火) 18:50:22 ID:???] >>300 SQL Server 2005 自習書シリーズ www.microsoft.com/japan/sql/techinfo/selfstudy.mspx この次は Books Online の最新版をダウンロードして、チュートリアルを一通りやる。 インデックスや統計情報などについては "SQL Server 2000 でいってみよう" と Books Online で問題なし。 SQL Server 2005 については正直いい本が出てない。基本さえわかれば Books Online と MSDN フォーラム、それでもわからない場合はサポートを使ってる。 SQL Server 2005 ビギナーズガイドとインサイド SQL Server 2005 はまだ目を通してないけど、今のとこ不自由はしてません。
304 名前:NAME IS NULL mailto:sage [2007/07/03(火) 22:16:22 ID:???] >>303 質問した人じゃないけどサンクス! SQLSERVER使いまくりのプロジェクト入って途方にくれてた・・・orz まあ、管理しないから接続とsql書ければいいんだけど念のため準備しておかないとね。
305 名前:NAME IS NULL mailto:sage [2007/07/03(火) 23:08:39 ID:???] SQL質疑応答スレ(pc11.2ch.net/test/read.cgi/db/1176553195/391-397 )で質問させていただいた者です。 実行する環境がSQL Serverなため、こちらでも質問させてください。 下記2つのViewから View_受注残(主キーに該当するのは注文番号&分納番号) 得意先名/需要先/手配番号/分納番号/出荷品番/出荷数量 ---------------------------------------------- あ / /001/00 /a /57000 あ / /001/01 /a /114000 ・ View_在庫・2次加工中一覧(主キーはロットNo。工程識別コードは1220が在庫。数字が大きいほど在庫に近い工程) ロットNo/品番/工程識別コード/工程数量 ----------------------------------------------- 1000001/a/1220/712 1000102/a/1220/38000 1000302/a/1220/712 1000401/a/1220/15373 1200505/a/1220/1084 1200601/a/1220/5164 1200702/a/1220/1481 1200805/a/1120/48550 1300902/a/1120/49171 1401001/a/1120/49919 1401105/a/1020/49536 ・ 下記みたいな 得意先名/需要先/手配番号/分納番号/出荷品番/出荷数量/ロットNo/ロット必要数 ---------------------------------------------- あ / /001/00 /a /57000/1000001/712 あ / /001/00 /a /57000/1000102/38000 あ / /001/00 /a /57000/1000302/712 あ / /001/00 /a /57000/1000401/5373 あ / /001/00 /a /57000/1200505/1084 あ / /001/00 /a /57000/1200601/1164 あ / /001/01 /a /201600/1200601/4000 あ / /001/01 /a /201600/1200702/1481 あ / /001/01 /a /201600/1200805/48550 あ / /001/01 /a /201600/1300902/49171 あ / /001/01 /a /201600/1401001/49919 あ / /001/01 /a /201600/1401105/48479 データがほしいのですが、文頭リンクの回答SQLを上記2つのViewに当てはめた場合、どのように書き直せばよろしいでしょうか? また、そのSQL文はSQL Serverで実行可能なものなのでしょうか? 皆様のお知恵を拝借いたしたくよろしくお願いいたします。
306 名前:NAME IS NULL mailto:sage [2007/07/03(火) 23:54:08 ID:???] 「こちらでも」って、向こうの質問取り消さなきゃただのマルチだろ
307 名前:305 mailto:sage [2007/07/04(水) 00:03:03 ID:???] あちらのスレでは一応、質問を閉めたつもりだったので・・・ 誤解しやすい文章で申し訳ありません。マルチと思われ気分を害されていたらすみませんでした。
308 名前:NAME IS NULL mailto:sage [2007/07/04(水) 08:08:11 ID:???] >>307 どのレスで閉めてるつもりよ?
309 名前:NAME IS NULL mailto:sage [2007/07/04(水) 08:48:46 ID:???] しっかし、関係者が見たら自分のとこのヤツが聞いたとわかってしまいそうなこんな聞き方していいのかよ。 しかも向こうのスレでレスいっぱいもらってるのに、レス番をを示しもせずにそれを自分とこに使うやり方を教えてくれって レスをまったく理解しようとしてないだけじゃん。詳しくは向こうのスレを熟読してくださいってか。 つまり答えとなる SQL を書いてくれ、即ち自分の仕事を代わりにタダでやってくれってことだろ。ふざけんな。 自分とこの職場の先輩に「わからないので教えてください」っていうのが先じゃねーの。
310 名前:NAME IS NULL mailto:sage [2007/07/04(水) 08:49:39 ID:???] そうそう目くじらたてる程のことでもないだろ
311 名前:NAME IS NULL mailto:sage [2007/07/04(水) 08:51:16 ID:???] と言いつつ一切答えを示さないおいら
312 名前:NAME IS NULL mailto:sage [2007/07/04(水) 08:59:37 ID:???] >>311 そんなことに頭と時間を使いたくないのはお互い様
313 名前:NAME IS NULL mailto:sage [2007/07/04(水) 13:25:49 ID:???] 質問すら読んでません><
314 名前:305 mailto:sage [2007/07/04(水) 15:11:09 ID:???] 何度も不愉快な思いをさせてしまい、本当に申し訳ございません。 帰ってきたSQL質疑応答スレ(pc11.2ch.net/test/read.cgi/db/1176553195/395-394 )で質問したところ、 >305のView_受注残とView_在庫・2次加工中一覧からほしい形式を取り出すのに下記SQL文を実行する必要があるらしいのですが、 SELECT T3.*,T4.製造日番 FROM ( SELECT *, COALESCE((SELECT sum(製造数量) FROM 注文テーブル WHERE 製造日番<T1.製造日番 AND 製造品番=T1.製造品番),0)AS ptotal, COALESCE((SELECT sum(製造数量) FROM 注文テーブル WHERE 製造日番<=T1.製造日番 AND 製造品番=T1.製造品番),0)AS ntotal FROM 注文テーブル AS T1 ) AS T3 FULL JOIN ( SELECT *, COALESCE((SELECT sum(注文数量) FROM 進捗管理テーブル WHERE 注文番号<T2.注文番号 AND 注文品番=T2.注文品番),0)AS ptotal, COALESCE((SELECT sum(注文数量) FROM 進捗管理テーブル WHERE 注文番号<=T2.注文番号 AND 注文品番=T2.注文品番),0)AS ntotal FROM 進捗管理テーブル AS T2 )AS T4 ON (T3.製造品番=t4.注文品番 ) WHERE T4.ntotal BETWEEN T3.ptotal AND T3.ntotal OR T4.ptotal >T3.ptotal ORDER BY T4.注文番号; 私には上記sql文が高度過ぎてどこをどのように書き換えたらよそしいのかさっぱり判断がつきません。 sql文に強い人間が身近にいないため、聞くにも聞けず本当に困っています。皆様助けてください。 皆様よろしくお願いいたします。
315 名前:NAME IS NULL mailto:sage [2007/07/04(水) 15:15:06 ID:???] >>314 たぶんだが、おまいに今の仕事はむいてない。
316 名前:NAME IS NULL mailto:sage [2007/07/04(水) 15:17:05 ID:???] >>314 大丈夫だ。中身読んでないから不快な思いしてない。
317 名前:NAME IS NULL mailto:sage [2007/07/04(水) 16:46:01 ID:???] Management Studio のオブジェクトエクスプローラの詳細で 作成日時に時間が表示されてませんが、表示するやり方 はあるんですか?
318 名前:NAME IS NULL mailto:sage [2007/07/04(水) 17:58:09 ID:???] >>317 できない。製品フィードバックページを見たら同じフィードバックがあった。 Table create date/time instead of just date in summary view https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=127192 確かに不便なんで一票入れておきました。 ちなみにデータ自体は時間もとってきているので、SSMS の UI で時間を表示していないだけでした。
319 名前:NAME IS NULL mailto:sage [2007/07/04(水) 18:33:27 ID:???] >>314 言葉遣いは丁寧だがすげー DQN なレスだな。これほどのは久しぶりに見た。 SQL 文とかそういうの関係ないから。とりあえず周りと相談しろ。この状態じゃこんなとこで答えられん。
320 名前:NAME IS NULL mailto:sage [2007/07/04(水) 20:31:29 ID:???] >>314 SQL以前に自分がやりたい事をテーブルレベルで考えろ。 で、そいつをストアドにしてしまえ。 どうせSQLひねくりまわした事やったってその職場ではメンテ不能なんだから だれでも理解できる確実な方法をやればいいだろ。 パフォーマンス?そんなのマシン買ってもらえ。 職場全体の教育コストよりは安いから。 と、質問内容を見ないでカキコ
321 名前:305 mailto:sage [2007/07/06(金) 19:14:27 ID:???] 皆さんにここまでいわれるとは思っても見ませんでした・・・ 勉強を一からしなおしてきます。 スレを汚してしまいして申し訳ありませんでした。
322 名前:NAME IS NULL [2007/07/06(金) 22:16:24 ID:o79f8M8u] テーブルの内容をINSER文のSQLでエクスポートする方法はないですか。 エクスポートしたあと、SQLを一部修正して複数のDBへINSERTということをしたいのです。 PHPMyAdminのエクスポートみたいなことをしたいのですが。
323 名前:NAME IS NULL mailto:sage [2007/07/07(土) 00:04:59 ID:???] >>322 そんなことしなくても、SQL Server 2000 には DTS、2005 には BI という機能があります。 もしくは BCP を使う。ネイティブ モードでエクスポート/インポートしてバッチファイルでインポートすればよし。
324 名前:NAME IS NULL mailto:sage [2007/07/07(土) 00:06:17 ID:???] >>321 仕事か勤務先を変えた方がいいと思われ。 素人に一人で仕事させる会社なんか信用できん。
325 名前:NAME IS NULL mailto:sage [2007/07/07(土) 06:11:52 ID:???] >>322 www.codeplex.com/sqlhost の Publishing Wizard
326 名前:NAME IS NULL mailto:sage [2007/07/09(月) 18:28:32 ID:???] 素人というか、そもそも問題の意図がどこにあるかがさっぱり解かってない 相手にはその質問のどこに問題があるかを指摘してやらにゃ解からないだろうに。 おまいら、ほんと心がねぇよな。 いくら頭が賢くても、心ない人間は付き合いたくない人種だぜ。 いまさらだが >>305 の質問では、 得意先or需要先とロットbフ関係がさっぱり解からんのよ。 あと、ロット必要数の定義ね。 君の質問だけど、 僕、足立区に住んでて、 足立区にはこれとこれとこの町があるんだけど、 これだけの情報で、僕のお母さん探してくれませんか? って言ってるようなもの。 それじゃ分かる訳ないなってな感じなのかね。 このような質問の仕方だけで、自身がまだ質問できるレベルに達していないと解かる。 で、たぶんそこが解かれば、SQL自体はそんな難しくないはずだから解かるんでないかな。 いまさらと思うが・・・
327 名前:NAME IS NULL mailto:sage [2007/07/09(月) 23:45:37 ID:???] >>326 このスレは総じて親切なスレだと思うけどね。 ボコられてるのは >>24 と >>164 のマルチと >>305 くらいで、>>46 とか >>110 への返信なんてえらく親切だと思うけど。 >>305 はまず先輩や同僚と話し合うべき質問だよ。アカの他人に聞いても答えられるものではない。
328 名前:327 mailto:sage [2007/07/09(月) 23:46:27 ID:???] まちがえた。>>24 はボコられてなかった。
329 名前:NAME IS NULL mailto:sage [2007/07/09(月) 23:46:40 ID:???] 亀レスで終わった話題を蒸し返すなよ
330 名前:NAME IS NULL mailto:sage [2007/07/10(火) 00:12:17 ID:???] そうだね。話題を変えていこう。 SQL Server 2008 もう試した? なんかデータが圧縮できるらしい。ディスクと CPU のパフォーマンスが心配だけどメモリたくさんつめばイケるのかな。 CTP はここで落とせる。明日インストールしてみるつもり。 https://connect.microsoft.com/SQLServer/content/content.aspx?ContentID=5395 空間情報サポートは案件がこなそうだなあ。
331 名前:NAME IS NULL mailto:sage [2007/07/10(火) 14:41:12 ID:???] バックアップについて質問です。 週に1回全体バックアップ、1日に2回差分バックアップ、 30分に1回トランザクションログバックアップを取るように バックアップ計画を立てています。 この場合、トランザクションログのバックアップは最大12時間分 残しておけばよいので、SQL Serverエージェントのジョブの設定も そのようにしたいのですが、方法がわかりません。 具体的には、LOG.BAKファイルの増大を抑えるため、LOG.BAKの 中身が12時間(24回)分のバックアップでローテートされるように したいのですが。。。 ご教授お願いします。
332 名前:NAME IS NULL mailto:sage [2007/07/10(火) 16:52:43 ID:???] >>331 データベース保守計画ウィザードを使う。 SQL Server 2005 ならメンテナンス プラン ウィザードね。
333 名前:かなかな [2007/07/13(金) 20:51:56 ID:UixSmPfQ] お世話になります。 SQLServer2000StanderdにACCESS2000ADPからADO接続しています。(古い構成ですが) お聞きしたいのはインスタンスのことです。 現在のSQLServerは既定の構成(インスタンスなし)でセットアップしたものですが、 これに対してACCESSより接続を行うとエラーとなります。 接続文字列は以下のとおりです。 Provider=SQLOLEDB.1; Data Source=HOGEHOGE_SRV; Initial Catalog=HOGE_DB; Persist Security Info=true; user id=sa; password=**** エラーは「SQLServerが存在しないか、アクセスが拒否されました」です。 で、実はインスタンス名を付与してセットアップを行ったSQLServerがもう一台あって、 そちらに同様の接続文字列で接続するとつながるのです。 データソース名のみ変えています。(Data Source=HOGEHOGE_SRV\INS01 のように) ACCESSのADPのファイルメニュー−接続で表示されるデータリンクプロパティを 使うと、インスタンス名のありなしに関係なく接続できてしまいます。接続できないのは ACCESSのVBAで記述したADO接続で、インスタンス名なしのサーバにつなぎにいった時だけです。 すでに行き詰っております。お知恵お貸しください。。
334 名前:NAME IS NULL mailto:sage [2007/07/13(金) 21:23:36 ID:???] >>333 新規テキストファイルを作成して、ファイル名を test.udl とかに変えてダブルクリックしてみる。 そんでいろいろ設定して接続テストがうまくいったらテキストエディタで test.udl を開く。 それが接続可能な接続文字列で、適当に加工してプログラムに組み込む。 エラーの意味は、SQL Server が Listen していると思うポートにアクセス試行したけど、応答がありませんでした、という意味だ。 つまり既定のインスタンスであれば TCP 1433 番ポートなので、そこにアクセスを試みたけど応答が無かったという意味だ。
335 名前:かなかな [2007/07/13(金) 22:09:52 ID:UixSmPfQ] >>334 早速ありがとうございました。こんな便利なやりかたがあるんですね。 接続文字列を貼り付けてみたところ、見事に接続されました。 というかサーバ名を1文字間違えていただけでした。ご教授の方法にて 作成した接続文字列と比較していなければもっと時間がかかったかも。 ありがとうございました。
336 名前:NAME IS NULL mailto:sage [2007/07/14(土) 06:43:38 ID:???] 1文字くらい違ってても多めにみろよコノコノ- ってことですか・・・
337 名前:NAME IS NULL mailto:sage [2007/07/15(日) 21:30:36 ID:???] 初心者向けに、VB2003からパラメータ付きでSQL Server 2000 のストアドプロシージャを 呼び出すようなサンプロコードが書かれているようなページ無いでしょうか?
338 名前:NAME IS NULL mailto:sage [2007/07/15(日) 22:36:45 ID:???] >>337 ずいぶん限定するんだな。 VS2005 + SQL2005 なら現行だから、VB6 + SQL2000 ならば一昔前の一般的な組み合わせだから資料も多いんだが。 VS2005 + SQL2005: Let's Master ストアド・プロシージャ!(前編) www.atmarkit.co.jp/fdotnet/vs2005db/vs2005db_08/vs2005db_08_01.html VB6 + SQL2000: SQL Server 2000 自習書シリーズ www.microsoft.com/japan/technet/prodtechnol/sql/2000/evaluate/exercises.mspx 開発編 No.5-1 Transact-SQL を使用したデータベースの基本操作 開発編 No.6 Visual Basic によるデータベースアプリケーション開発入門 あたり。 サンプルがほしいなら、多分 VS.NET2003 に付いてくる SDK やサンプルをあさればあるでしょ。 VS.NET2003 が出た頃は SQL2000 が現行バージョンだったからね。 VS.NET2003 も SQL2000 もはじめてなら、素直に先輩に聞いたほうがいいぞ。
339 名前:NAME IS NULL [2007/07/16(月) 20:32:21 ID:Bop8QnK9] c-au.2ch.net/test/-/mass/1183191945/i#b c-au.2ch.net/test/-/soc/1152718893/i
340 名前:NAME IS NULL mailto:sage [2007/07/17(火) 22:43:56 ID:???] 亀レスだが。 >>181 Management Studio からデータベースを右クリック→タスク→データのインポートで CSV も Excel もインポートできる。 Management Studio Express ではできるかどうかわからん。 Management Studio Express のダウンロード先は >>57 を参照してください。 また Express Edition で BI 系ツールを使うには、SQL Server Express Toolkit をインストールすれば使える。
341 名前:NAME IS NULL mailto:sage [2007/07/18(水) 10:58:05 ID:???] 初歩的な質問で申し訳ありません。 現在、SQL Server 2000でDBのパフォーマンスチェックを行うために、 SQL プロファイラを使用してDurationの値を監視しています。 ですが、TextDataが「-- network protocol: TCP/IP set quoted_identifier〜」 となっているものと(DurationはNULL)、TextDataがNULL(Durationがやたらと大きい) のログの意味がいまいちよくわかりません。 上の二つはセットになっているようなので、トランザクションか何かの 時間を表してるのかなぁと思っていますが。 DBのレスポンスだけをチェックしたいのであれば上記の 「TextDataがNULL」のログについては無視してもかまわないのでしょうか?
342 名前:NAME IS NULL mailto:sage [2007/07/18(水) 12:11:40 ID:???] >>341 気にしたこと無いわ。無視していいんじゃない? たぶんそれクライアントからの DB への接続で、プーリングを使ってるから duration が大きいんでないの?
343 名前:NAME IS NULL [2007/07/24(火) 08:42:33 ID:23CsOyc5] やっぱphpMyAdminのあるMySQLのほうが便利だよな。
344 名前:NAME IS NULL [2007/07/25(水) 10:53:45 ID:hBYSx6Qt] SQL文で今日より以前の日を絞り込む方法を教えてください
345 名前:NAME IS NULL mailto:sage [2007/07/25(水) 11:46:00 ID:???] CURRENT_TIMESTAMP
346 名前:NAME IS NULL mailto:sage [2007/07/25(水) 11:49:22 ID:???] getdate()でもよかった
347 名前:NAME IS NULL [2007/07/25(水) 11:53:31 ID:vso8Zt4w] Ver7 と Ver2005 は同じサーバ下でふつうに お互い干渉することなく共存できますでしょうか? 接続ポートは異なる番号にするとして。
348 名前:NAME IS NULL [2007/07/25(水) 11:56:10 ID:oKumoV+x] すまそ、ストアドプロシージャで ネスト状態のトランザクションの一番外側のトランザクションをロールバックしたら 内側のトランザクションのコミットまでロールバックされちゃうんだけど、 内側のトランザクションのコミットだけを有効にする方法ってないでしょか。。 (別のコネクションを作って処理方法ってのは見つかったけど処理が遅そうなので、 それ以外でなにか方法ないでしょか) ぶっちゃけストアドプロシージャのログをテーブルに書き込みたいんだけど、 ロールバックしたら書き込んだはずのログまでロールバックされちまうのよね。。 SQL Server2005っす。よろしくお願いしますm(_ _)m
349 名前:NAME IS NULL [2007/07/25(水) 12:05:00 ID:VpzEkwc4] >>348 >(別のコネクションを作って処理方法ってのは見つかったけど処理が遅そうなので、 > それ以外でなにか方法ないでしょか) これしかないね。
350 名前:NAME IS NULL [2007/07/25(水) 12:25:51 ID:vso8Zt4w] >>348 方法論の話になるけど 内側のトランザクションってログを吐くだけ? ならログを吐く前にトランザクションを解放すればいいのでは? 解かっているとは思うけど・・・ >>347 の回答をお願いします。
351 名前:348 [2007/07/25(水) 13:20:00 ID:oKumoV+x] >>349 む、他に方法はないすか・・・ログ出力とかどーししてるんだろ。。 下の方法が無理だったら別コネクション作ってやってみるっす、ありがとです。 >>350 うん、それも考えたけど処理中には好きなだけログ出したいのん。 ストアドプロシージャの開発経験が無いからハマッたんだけど、 たいていはローカル変数にログを格納しておいて、一度トランザクションを終わらせたあと 全部出すって感じなんかな。 ちょっとこちらで実装試みてみるっす、ありがとです。 PS.バージョン違いのSQLServerのインストールはしたことないからわかんないっす、すまそ。
352 名前:NAME IS NULL [2007/07/25(水) 13:53:15 ID:vso8Zt4w] >たいていはローカル変数にログを格納しておいて、一度トランザクションを終わらせたあと >全部出すって感じなんかな。 ログを吐きたいときにROLLBACKしてローカル変数の トランザクション解放フラグをセットして で最後にそのフラグでCOMMITするかの判定をするの方が簡単かと。。。 >>どなたか347の回答をお願いします。
353 名前:NAME IS NULL [2007/07/25(水) 14:00:51 ID:vso8Zt4w] あ、ローカル変数のフラグ持たなくても@@TRANCOUNT代用でいけると思う。
354 名前:NAME IS NULL mailto:sage [2007/07/25(水) 14:20:02 ID:???] >>347 7.0 はインスタンスの概念がないから、2005 を名前つきインスタンスにすれば原理としては動く。 だがサポートはされてないので、サポートがほしければ移行をする。
355 名前:NAME IS NULL [2007/07/25(水) 15:02:21 ID:vso8Zt4w] >>354 ちなみに、Ver7運用のWindows2000Serverへ2005運用のWindowsXP(個人PC)から 2005を引越させたかったのです。 移行コストと統合した場合のライセンス数の問題もあるので諦めがつきました。 ありがとお。
356 名前:NAME IS NULL mailto:sage [2007/07/25(水) 17:56:08 ID:???] >>347 つ「VMwareServer」
357 名前:NAME IS NULL [2007/07/27(金) 03:48:54 ID:9Xf5xfZa] どなたか助けてください。 PDO_ODBC で SQL Server に接続するWEBサイトの更新をしなくてはならないのですが、 SQL Server のDBはJapanese_Unicode_CI_ASで中国語や韓国語も文字も入っています。 しかしなぜか、INSERT,UPDATE,SELECTの全ての処理で、文字コードをSJIS変換しないと 文字化けしてしまいます。PHPスクリプトは全てUTF-8です。 文字化けせずにINSERT,UPDATE,SELECTの処理を行う方法はあるでしょうか?
358 名前:NAME IS NULL mailto:sage [2007/07/27(金) 05:23:48 ID:???] >>357 文字の入る列のデータ型は何なの?
359 名前:NAME IS NULL mailto:sage [2007/07/27(金) 05:27:11 ID:???] >>357 よくわからんけどあてずっぽうで言ってみる。 文字リテラルにNをつける。 INSERT INTO xx (hoge) VALUES ( N'Unicode 文字列' )
360 名前:NAME IS NULL [2007/07/27(金) 07:03:46 ID:9Xf5xfZa] >>358 Japanese_Unicode_CI_AS で同じです。 Management Studio では中国語、韓国語の表示、入力可能なんですが。。
361 名前:NAME IS NULL [2007/07/27(金) 07:05:15 ID:9Xf5xfZa] >>358 あっ、データ型は nvarchar です。
362 名前:NAME IS NULL [2007/07/27(金) 07:21:23 ID:9Xf5xfZa] >>359 Nプレフィッスつけるとうまく行きます。 でもSELECT *時は自動的にSJIS変換されるようで、 SJISにない文字は?に置き換わります。 あと、INSERT, UPDATE時に文字リテラルにNをつけるのは PDOのプレースフォルダでは使えないですね。 PDOのメリットが。。。
363 名前:NAME IS NULL [2007/07/27(金) 07:59:57 ID:W4GUl2oG] bcp で image型の列に格納されている写真データを、文字形式でフィールド終端文字をカンマにして、 いわゆる csv ファイルとして保存した場合、正常にインポートすることが可能なのでしょうか? SQL Server は全くの素人なので、MSDNのサイトを色々調べていたのですが、どうもよくわかりません。 どなたか教えて頂けませんか?
364 名前:NAME IS NULL [2007/07/27(金) 11:00:11 ID:36Ve7Y87] SQL Server 2005のこの不具合って forums.microsoft.com/msdn-ja/ShowPost.aspx?PostID=322393&SiteID=7&mode=1 直っています? 自分の環境では上記の不具合のせいで激しく使いにくいんですけど クライアントはWinXP SP2で、Management StudioにはSP2適用済み
365 名前:NAME IS NULL mailto:sage [2007/07/27(金) 11:27:03 ID:???] >>364 これはしらんかった。試してみたらほんとにそうなるね。 これ多分 .NET Framework 2.0 のクラスにバグがあると思うんで、SQL Server の fix として直るか微妙だな。 .NET Framework 使ってない Enterprise Manager を使うか、VB6 か VBA で入力だけやるか、でとりあえず逃げるか・・・
366 名前:NAME IS NULL mailto:sage [2007/07/27(金) 11:27:58 ID:???] >>363 bcp に -n オプションをつけてエクスポート・インポートしてみ?
367 名前:NAME IS NULL mailto:sage [2007/07/27(金) 11:31:55 ID:???] >>362 php スクリプトのコードページが SJIS になってると思われ。 どうやって変えたらいいかはわからん。ASP なら @codepage=... で指定するアレ。
368 名前:366 mailto:sage [2007/07/27(金) 11:33:54 ID:???] >>366 はスルーしてくれ。読み間違えた。
369 名前:NAME IS NULL [2007/07/27(金) 15:43:30 ID:9Xf5xfZa] >>367 コードページとはPHPでどう指定するのでしょうか? mb_internal_encoding('UTF-8'); mb_language('ja'); だけでは不十分でしょうか?
370 名前:NAME IS NULL mailto:sage [2007/07/27(金) 16:30:13 ID:???] >>369 その mb なんとやらはぐぐったところによると http レスポンスに対する文字コードの設定で、コードページとは違うんじゃないかな。 php は使ったことがないんでどうやってやるかはわからない。
371 名前:NAME IS NULL [2007/07/27(金) 16:53:17 ID:9Xf5xfZa] 357です。 皆さん、いろいろ助言いただきありがとうございました。 やはりPHPとSQL ServerではUTF-8でのやりとりは不可能なのかもしれません。 コードを全て書き換える覚悟で、MySQLやPGSQLも検討しないといけない かもしれません。。。。つらいです。。
372 名前:NAME IS NULL mailto:sage [2007/07/27(金) 17:00:06 ID:???] >>371 php "sql server" utf8 でぐぐってみたらこんなページがヒットした。 www.thinkit.co.jp/free/article/0707/14/2/
373 名前:NAME IS NULL [2007/07/27(金) 19:54:44 ID:9Xf5xfZa] >>372 ありがとう。でもそのページはここに質問する前に確認してまして、 UCS-2,UTF-16での変換処理もテスト済みでした。 結果は、アルファベットのみのテーブル名まで文字化けして、 SQL文自体もエラーが出ます。 その点、UTF-8ならASCII互換なのでデータは文字化けしても 大丈夫なようです。 どの段階でSJISに自動変換されてるかがとても不思議です。 入出力時の文字コード指定なんかもあるのかな? はあ、もう2週間以上も。。です。。
374 名前:NAME IS NULL mailto:sage [2007/07/27(金) 20:34:08 ID:???] php pdo odbc と階層が深いからどこかで何かあるんだね。 OSとphpとodbcのバージョンを明記しとくれ。 このスレで答えられそうなのはodbcまでだべ。
375 名前:NAME IS NULL [2007/07/27(金) 21:01:40 ID:9Xf5xfZa] >>374 ありがとう。なんかここ優しい人多いね。 Windows Server 2003 Enterprise Edition SP2 PHP 5.2.3 (IISはISAPI、バッチはCGIで) ODBC 3.526.3959.0 よろしくお願いします!!!
376 名前:NAME IS NULL [2007/07/30(月) 22:10:24 ID:G6kjI83w] SQL Server Expressでデータのインポート/エクスポート用ツール が有る(DTSWizard.exe)と記事にあったがDTSWizard.exeなるexeが 見当たらない この記事は誤り? 記事つttp://itpro.nikkeibp.co.jp/article/COLUMN/20070725/278293/ ?ST=middleware
377 名前:NAME IS NULL mailto:sage [2007/07/30(月) 23:25:29 ID:???] >>376 SQL Server Express には DTS インポート/エクスポート ウィザードはついてないようです。 SQL Server 2005 Developer Edition でも買ってみたらどうでしょう。Amazon で 5000 円くらいだし。 もしくは >>57 にあるように SQL Server Express Toolkit をインストールして SSIS を使うか、BCP を使うか。 参考ページはこちら forums.microsoft.com/MSDN/ShowPost.aspx?PostID=156956&SiteID=1
378 名前:NAME IS NULL [2007/07/30(月) 23:32:24 ID:m5/h5tTg] SQLServer2005Expressにクエリアナライザは無いのでしょうか? ダウンロードサイトなどがあれば教えてください。 また、osqlで接続しようとすると下記のエラーが発生します。 ------ C:\Documents and Settings\masuda>osql -U sample_user -P pass [SQL Native Client]名前付きパイプのプロバイダ : SQL Server への接続を開けません でした [2]. [SQL Native Client]ログイン タイムアウトが時間切れになりました [SQL Native Client]サーバーへの接続確立時にエラーが発生しました。接続先が SQL Se rver 2005 である場合は、既定の設定では SQL Server がリモート接続を許可していないことが原因である可能性があります。 ------ リモートの接続許可をしているのですが、何の設定ができてないのでしょうか? ちなみに -d DB名 -S サーバ名の指定を入れてもだめです。 ユーザーはちゃんとDB接続の権限はあります。
379 名前:NAME IS NULL mailto:sage [2007/07/31(火) 01:08:14 ID:???] >>378 >>57 のリンクから SQL Server Management Studio Express SP2 をインストールする。 クエリアナライザは SSMS に統合されている。 後半は次のリンクを読んでくれ。 www.microsoft.com/japan/sql/ssj/tips/01.mspx
380 名前:NAME IS NULL mailto:sage [2007/07/31(火) 01:12:23 ID:???] >>378 あー・・・これでやってみ。 osql -S (local)\SQLEXPRESS -E もしくは osql -S (local)\SQLEXPRESS -U <user_name> -P <password>
381 名前:NAME IS NULL [2007/07/31(火) 13:00:11 ID:Gabgbzj2] しょぼい質問だけど、SELECT文に数式書けないの? たとえば「SELECT day(getdate()) = 30」とか。(TRUE または FALSEを受け取りたい) あ、CASE〜WHENは使わずにです、ふと気になったんよね。
382 名前:NAME IS NULL [2007/07/31(火) 19:01:12 ID:vAKxfwZu] SQL ServerでLIMIT OFFSET 句のようなものを最も簡単に 実現する方法はないでしょうか?
383 名前:NAME IS NULL mailto:sage [2007/07/31(火) 20:29:27 ID:???] >>381 できない。
384 名前:NAME IS NULL mailto:sage [2007/07/31(火) 20:33:52 ID:???] >>381 IFで
385 名前:NAME IS NULL mailto:sage [2007/07/31(火) 20:39:21 ID:???] >>382 LIMIT に相当するのは SET ROWCOUNT または TOP/PERCENT 句 OFFSET に相当するのはわからん。無いと思う。
386 名前:NAME IS NULL mailto:sage [2007/07/31(火) 20:59:52 ID:???] >>378 のように2005で sqlcmd を使わない理由ってなんだろ? なぜ osql?
387 名前:NAME IS NULL mailto:sage [2007/07/31(火) 21:32:46 ID:???] >>386 増田君はまだ sqlcmd の存在を知らないんじゃないかな。 sqlcmd の使い方 download.microsoft.com/download/7/b/7/7b7872d1-7890-4950-93d7-32c4d8080b0d/SQL2005_SQLCMD.doc リンク元 www.microsoft.com/japan/technet/prodtechnol/sql/2005/exercises.mspx
388 名前:381 [2007/08/01(水) 14:15:30 ID:wqqOJI35] >>383 やっぱできないのね、ありがとん。 >>384 それができないんよね。。。
389 名前:NAME IS NULL [2007/08/01(水) 16:59:56 ID:03Q0U7a/] 重いSQLを実行した時に1回目よりも2回目の方が実行時間が短いのですが、 これはキャシュか何かに残るからなのでしょうか? もし、そうでしたら残らないようにできませんか? 2回目の実行時間を1回目と同じにしたいんです。 SQLServerのバージョンは2005です。
390 名前:NAME IS NULL mailto:sage [2007/08/01(水) 20:20:18 ID:???] >>389 DBCC DROPCLEANBUFFERS
391 名前:376 mailto:sage [2007/08/01(水) 22:38:21 ID:???] >>377 ありがと あの記事は誤りなんですね 業務使用の為Developer Editionはやめときます BCPでやります
392 名前:389 mailto:sage [2007/08/02(木) 08:12:22 ID:???] >>390 サンクス。試してみます。
393 名前:NAME IS NULL [2007/08/02(木) 15:41:14 ID:d0YVhx1l] CURRENT_TIMESTAMPから-300秒した時刻を書き込みたい場合 どうすればいいでしょうか?
394 名前:NAME IS NULL mailto:sage [2007/08/02(木) 16:01:12 ID:???] >>393 DATEADD
395 名前:NAME IS NULL mailto:sage [2007/08/03(金) 10:54:19 ID:???] VB6+ADOでSQL Server 2005から10万行とか引っ張ってきてdatagridで表示してるんだけど 検索に時間かかってその間、何も表示されなくなっちゃうんだけど 結果を一気に受け取るんじゃなくて だらだらと流されてくるのをそのままだらだら表示みたいなことってどうやったらいいんでしょう? なんて検索したらいいのか検索キーワードもよく解らないんで 検索キーワードだけでも教えてください。 答えそのものずばりの方がうれしいけど
396 名前:NAME IS NULL mailto:sage [2007/08/03(金) 11:20:36 ID:???] >>395 分けて読んでだらだら表示させればいいんじゃね?
397 名前:NAME IS NULL mailto:sage [2007/08/06(月) 09:07:07 ID:???] 最終的に10万行のレコードを一遍に見せられても それを見る人間のほうが処理能力追いつかないと思うんだが・・・
398 名前:NAME IS NULL [2007/08/06(月) 14:49:29 ID:/Tu3zhUl] 更新トリガを使って更新履歴を履歴テーブルに出力しようとしてるんだけど 元のテーブルにtext型があるのでエラーになってしまう いい回避方法を教えてください。
399 名前:NAME IS NULL mailto:sage [2007/08/06(月) 15:46:31 ID:???] >>398 "元のテーブルにtext型がある" ので "エラーになってしまう" ↑この因果関係がわからんので説明してくれ。 それからエラーが出る時はそのエラー番号やらメッセージを正確に書き込んでくれ。 じゃないと何が問題でエラーになってるのかわからん。
400 名前:goto [2007/08/06(月) 16:12:01 ID:P5Wj6Hsu] MSSQL Server がある日から突然、開始できなくなってしまいました。 サービスマネージャーで開始ボタンを押しても、すぐに停止してしまいます。 どなたかご教示をお願い致します。
401 名前:NAME IS NULL mailto:sage [2007/08/06(月) 16:36:02 ID:???] イベントログ見ろ。
402 名前:NAME IS NULL mailto:sage [2007/08/07(火) 14:15:44 ID:???] >>399 詳細を報告するのでお願いします。 更新履歴をとりためにトリガーを作成したいと考えてます。 INSERT INTO [HISTORY_LOGDATA].[dbo].[LOG] (コメント) SELECT コメント, FROM [Deleted] のコメントがTEXT型で定義されている状況です。 このsqlを実行すると サーバー : メッセージ 311、レベル 16、状態 1、プロシージャ D見積_HISTORY、行 71 挿入されたテーブルおよび削除されたテーブルでは、TEXT、NTEXT、および IMAGE 列を使用できません。 のえらーが出ます。 どうしたらいいのか教えてください。
403 名前:NAME IS NULL mailto:sage [2007/08/07(火) 15:06:44 ID:???] >>402 正確に書き出してる?
404 名前:NAME IS NULL mailto:sage [2007/08/07(火) 17:42:50 ID:???] >>402 311 "Cannot use text, ntext or image columns" trigger でぐぐった。 SQL2KSP4 で修正されているこんなバグがあるが、これじゃねーの? support.microsoft.com/kb/884855/en-us 質問の仕方はこのページの書き方がわかりやすい。 www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/Q_20692567.html?cid=335 しかし登録しないと回答はみれない。 >>402 が書いたエラーメッセージではぐぐっても何もヒットしなかった。 エラーメッセージが正確でないためにヒットしなかったんなら、検索もしてねーってことで。
405 名前:NAME IS NULL mailto:sage [2007/08/07(火) 22:02:59 ID:???] >>402 ちゃんとマニュアル読めよ。 msdn2.microsoft.com/ja-jp/library/ms191300.aspx | SQL Server 2005 では、AFTER トリガ用の inserted テーブルおよび | deleted テーブル内で text 列、ntext 列、または image 列を参照す | ることを禁止しています。これらのデータ型は旧バージョンとの互換 | 性のためだけに用意されているものです。大量のデータのストレージ | には、varchar(max) データ型、nvarchar(max) データ型、および | varbinary(max) データ型を使用することをお勧めします。AFTER | トリガと INSTEAD OF トリガでは、inserted テーブルと deleted | テーブルで varchar(max) 型、nvarchar(max) 型、および | varbinary(max) 型のデータがサポートされます。詳細については、 | 「CREATE TRIGGER (Transact-SQL)」を参照してください。
406 名前:NAME IS NULL mailto:sage [2007/08/07(火) 22:12:37 ID:???] 解決方法は別の方法で同じ機能を実装するか、コメント列の型を text → varchar(max) / nvarchar(max) / varbinary(max) に変えるか、か。 SQL Server 2008 CTP ではまだ text 型は使えるけど、その次にはもうなくなりそうだな。
407 名前:NAME IS NULL [2007/08/08(水) 17:18:10 ID:3I8cN/t6] SQL Server 2005 Books Online (2007 年 5 月) www.microsoft.com/downloads/details.aspx?FamilyID=be6a2c5d-00df-4220-b133-29c1e0b6585f&DisplayLang=ja
408 名前:NAME IS NULL mailto:sage [2007/08/14(火) 18:57:31 ID:???] sys.tablesより検索しておのおののテーブルのカウントを取りたいのですが、間違いだといわれます・・・ declare @name varchar(128) declare curs CURSOR for select name from sys.tables where name not like '[_]%' open curs fetch next from curs into @name while @@fetch_status=0 begin declare @count nvarchar(1024) select @count=count(*) from @name ← ここが間違い fetch next from curs into @name end close curs deallocate curs 言われてみればもっともなんですが、文字列からテーブル型に代える手段ってあるんでしょうか?
409 名前:NAME IS NULL mailto:sage [2007/08/14(火) 23:01:10 ID:???] >>408 やりたいことがわかりません。テーブルの "カウント" って何?
410 名前:NAME IS NULL mailto:sage [2007/08/14(火) 23:12:37 ID:???] テーブルごとの行数を出したいんだろ
411 名前:NAME IS NULL mailto:sage [2007/08/14(火) 23:31:10 ID:???] そうなん?sys.tables の定義を見ると、「テーブル オブジェクトごとに 1 行のデータを返します。」って書いてある。 だから各テーブルにつき一行というのははじめから決まっていると思うんだが。 Books Online: sys.tables msdn2.microsoft.com/ja-jp/library/ms187406.aspx それとも、「各テーブル内にデータとして持っているレコード数」っていう意味? >>409 の書き方だとそのように理解することも出来ると思うのだけど。
412 名前:NAME IS NULL mailto:sage [2007/08/15(水) 00:38:24 ID:???] レコード数の意味でしょ。ソースは間違ってるけど。
413 名前:NAME IS NULL mailto:sage [2007/08/15(水) 09:06:59 ID:???] >>408 > declare @count nvarchar(1024) なんで、レコード「数」なのに文字列なんだ?
414 名前:NAME IS NULL mailto:sage [2007/08/15(水) 10:12:38 ID:???] 初心者なんだしょ。
415 名前:NAME IS NULL [2007/08/16(木) 14:51:28 ID:9jbOvHpM] 素人質問っす。 同じスキーマ内のユーザー定義ストアドプロシージャからユーザー定義関数を呼び出すときにもスキーマ名は必要っすか? 『'(ユーザー定義関数の名前)'は 組み込み関数名 として認識されません。』ってエラーが出ますのん。 同じスキーマ内なんだからいいじゃんって思うんだけど、なにかが間違ってる?? ちなみにユーザー定義ストアドプロシージャ作成時の CREATE文のストアドプロシージャ名には スキーマ名は付けてないけど思い通りのスキーマにストアドプロシージャは作成されます。 (ためしにストアドプロシージャ名にスキーマ名を付けて CREATEしてみたりもしたけど同じエラーが発生)
416 名前:NAME IS NULL [2007/08/20(月) 17:56:41 ID:ybUOpt+W] OracleのMERGE、MySQLのREPLACE構文の代替ってありますか?
417 名前:NAME IS NULL mailto:sage [2007/08/20(月) 23:58:51 ID:???] >>416 if exists ... update ... else insert ...
418 名前:NAME IS NULL mailto:sage [2007/08/24(金) 01:48:57 ID:???] SQL Server 2005 Express を使っています。 バックアップを取っていない場合に、 レコードを削除してしまったら復活する方法はないのでしょうか。
419 名前:NAME IS NULL [2007/08/24(金) 12:59:22 ID:6I2DLghf] >>418 それ、ゴミ箱から消したファイルを復活させたいってのと同じじゃね? コミットしてなかったらロールバックで復活可能だが(w
420 名前:NAME IS NULL [2007/08/24(金) 20:48:47 ID:Jo3vzugf] 初心者すぎる質問で申し訳ないです。 ユーザーCALのユーザーってSQLSERVERのユーザー、Windowsのユーザー、 ○○さんと××さんが使用するっていう自己申告のユーザーのうちどれを 指してるんでしょうか。MSのホームページみても理解できませんでした。
421 名前:NAME IS NULL mailto:sage [2007/08/24(金) 22:19:56 ID:???] >>420 アクセスするユーザー数だけ必要。 対象システムの最大利用者数分購入する必要があるはず。
422 名前:NAME IS NULL [2007/08/24(金) 22:42:47 ID:pk3uMvIo] SQLには、Webサーバ上のASP.NETプログラム経由でしかアクセスしない 場合でも、そのASP.NETの利用ユーザ数分だけCALが必要なのでしょうか? (SQLサーバには、ファイアウォールで直接ユーザからのアクセスはできないようになっている)
423 名前:NAME IS NULL mailto:sage [2007/08/24(金) 22:58:57 ID:???] >>422 直接アクセスできなくたって、SQL Serverを利用している事に変わりはない。 CALならASP.NETの利用ユーザ数分必要。
424 名前:NAME IS NULL [2007/08/25(土) 23:26:17 ID:oW87BVWG] 初心者な質問なんですいません。 現在、SQL-Server2005の価格表とにらめっこしているのですが、 ライセンスのところがよく分りません。 "Select A Level"と"Open Business No Level"の違いがわかる方 いらっしゃいましたらご教授お願いいたします。
425 名前:NAME IS NULL mailto:sage [2007/08/25(土) 23:55:37 ID:???] >>424 www.microsoft.com/japan/customer/information/phone.aspx
426 名前:NAME IS NULL [2007/09/04(火) 17:36:54 ID:BavPmLq2] SQL クエリアナライザ で実行モードで「結果をグリッドに表示」を選択しても 何も表示されなくなってしまいました。 また、トレース、統計、メッセージは表示されますが、 実行プランも表示されなくなってしまいました。 表示されないとは、タブは出来るんですが、内容が真っ白です。 SQL Server2000で、クエリアナライザはそれについていた物です。 何か分かる方いますか?
427 名前:NAME IS NULL mailto:sage [2007/09/04(火) 22:44:19 ID:???] >>426 結果をテキストでは表示できたり、SHOWPLAN ALL ではプランが表示されるというなら、 コントロールが壊れちゃったんだろうな。クライアント ツールだけ再インストールが手っ取り早いと思う。
428 名前:NAME IS NULL mailto:sage [2007/09/06(木) 15:01:53 ID:???] SQL Server 2005 の SQL文で、あるテーブルの任意の位置にカラムを追加したいのですが その方法はありますか? TABLE-A に A, B, C と列がある時、A と B の間に AB というカラムを追加し、 A, AB, B, C というテーブル情報にしたい。 末尾に追加するのであれば ALTER Table できるのですが。 方法があれば教えてください。
429 名前:NAME IS NULL mailto:sage [2007/09/06(木) 16:15:51 ID:???] >>428 目的が分からんからアレだけど、ALTER TABLEじゃ無理じゃね? 別案として、 ・カラム(A、AB、B、C)を持つ「TABLE_B」を作成 ・TABLE_AのデータをTABLE_Bにコピーする (必要であればABに値も入れておく) ・あとはTABLE_Aに移し変えるなり好きにする
430 名前:429 mailto:sage [2007/09/06(木) 16:22:30 ID:???] 追加 Enterpirze Managerだと出来るかも
431 名前:NAME IS NULL mailto:sage [2007/09/06(木) 16:41:04 ID:???] テーブルのカラム、任意に並べ替えることにどれほどの意味があるの?
432 名前:NAME IS NULL mailto:sage [2007/09/06(木) 19:37:55 ID:???] テーブル構造見るときに気持ちいい程度なんじゃないの。 データを読み込むときは、 SELECT A,AB,B,C FROM TABLE_NAME ってすれば、ABがどこにあろうと…
433 名前:NAME IS NULL mailto:sage [2007/09/06(木) 23:50:46 ID:???] >>428 ALTER TABLE では無理。>>429 の通り。 GUI の管理ツールでカラムを追加した場合は、内部のレコードがいったん tempdb に対比され、テーブル定義が削除され、再度テーブルが作成されてデータが tempdb からもどされるので、GUI 上と同じ列順になる。
434 名前:NAME IS NULL mailto:sage [2007/09/07(金) 07:54:13 ID:???] その、テーブル定義の並び順が、どうして大切なのか、 そういう風にするとSQLの最適化が出来るとかいう情報があるなら ぜひ教えてほしいんだけど。 キーが無いテーブルに、キーを追加するなら最適化できるから 十分理由はあるんだけど、キーの項目が先頭に無いといけない とはTechNetにも記述無いしなぁ
435 名前:NAME IS NULL mailto:sage [2007/09/07(金) 12:49:02 ID:???] RDB では、良く検索される項目を左側に持っていくと 抽出効率が良くなると、聞いた事はある。 どれぐらい差があるのかは知らないが。
436 名前:NAME IS NULL mailto:sage [2007/09/07(金) 21:22:31 ID:???] >>435 今はそういうのはないと思うよ
437 名前:NAME IS NULL mailto:sage [2007/09/09(日) 00:11:30 ID:???] OS:Windows Vista Business64bit にSQL SERVER 2005の評価版(x64)をインストールしたんだけど インストール時に規定のインスタンスを指定してインストールしたにもかかわらず management studioに表示されない。 SP2を入れてみても改善せず。 だれか助けて
438 名前:NAME IS NULL [2007/09/09(日) 00:58:18 ID:S34UPkq4] こんにちは、ど素人プログラマです。 SQLサーバー2000について教えて欲しいのですが、 あるテーブルに項目1、項目2、項目3が定義されているとして、 項目1の値が「1」のときは、項目2は必須項目 項目2の値が「1」以外のときは、項目3は必須項目 というような事を外部キー制約のように実現するにはどうすればいいのでしょうか? 制約? トリガ?
439 名前:NAME IS NULL mailto:sage [2007/09/09(日) 03:13:11 ID:???] >>437 >management studioに表示されない。 [ファイル]→[オブジェクトエクスプローラを接続]で接続してもだめでしょうか? あと、サービスの起動は確認済みでしょうか? >>438 個人的にはINSERT、UPDATEトリガーを使うのが良いかと。
440 名前:NAME IS NULL [2007/09/09(日) 12:49:10 ID:Qt4qWxfl] >>437 コマンドラインで接続できるか? osql -E で接続できれば、Windows認証で接続できている。 osql -U sa -P password で、passordをインストール時に指定したものを 入力して接続出来るのなら、sql認証も有効になっている。 これでmanagement studioで接続できないのなら、ファイアウォールを 疑ってみるとか
441 名前:NAME IS NULL [2007/09/09(日) 19:36:36 ID:n4fxWSxo] すみません、ょっとお伺いします。SQL Server 素人です。 自宅鯖でMSDE+ASPで遊んでいて、MSDEをSQL Server 2005 Express に アップデートしたのですが、ASPのプログラムで、 SQL Server に書き込みできなくなりました。 [Microsoft][ODBC SQL Server Driver][SQL Server]sysservers に サーバー '○○' が見つかりませんでした。 sp_addlinkedserver を実行して、サーバーを sysservers に 追加してください。 と表示されるのですが、具体的に何をどうしたら良いのでしょうか?
442 名前:NAME IS NULL mailto:sage [2007/09/09(日) 22:58:52 ID:???] >>441 君はリンクサーバーに接続しようとしてるから、リンクサーバーを追加すりゃいいんだよ。 その ASP プログラムって自分で作ったやつか?
443 名前:441 [2007/09/09(日) 23:05:33 ID:n4fxWSxo] スミマセン、リンクサーバーがなんやらわかんなくて。 ASPは自分でつくったやつ。 Set objDBC = Server.CreateObject("ADODB.Connection") objDBC.CommandTimeout = 60: objDBC.ConnectionTimeout = 120: objDBC.open C_DBName, C_DBID, C_DBPW: Set ObjRS = Server.CreateObject("ADODB.Recordset"): txtSQL = "SELECT * FROM t_カウント WHERE カウント名=情報ID'": ObjRS.Open txtSQL, objDBC,3,3: intProID = ObjRS.Fields("カウント値"): ObjRS.Fields("カウント値") = ObjRS.Fields("カウント値") + 1: ObjRS.Update: ObjRS.Close:
444 名前:441 [2007/09/09(日) 23:08:22 ID:n4fxWSxo] C_DBName は、ODBCのシステムDSNに登録してあります。 これだけじゃだめなの?
445 名前:441 [2007/09/09(日) 23:15:11 ID:n4fxWSxo] webアプリで、ローカルサーバのSQL Serverに接続して データを更新したいだけなのですが・・。
446 名前:NAME IS NULL mailto:sage [2007/09/10(月) 00:59:49 ID:???] >>443 ODBC で追加オプションは取れてるの? ちなみにサーバーは (local)\SQLEXPRESS と指定するんだぞ。 ドライバは SQL Server Native Client を指定する。 いろいろわかってればもっと違うんだが、とりあえずそれでやってみ。 もう少し詳しいことを知りたければ、とりあえず ASP から SELECT @@version を実行して結果を表示してみるとかな。
447 名前:NAME IS NULL mailto:sage [2007/09/10(月) 01:05:32 ID:???] q.hatena.ne.jp/1189334981
448 名前:NAME IS NULL mailto:sage [2007/09/10(月) 01:09:12 ID:???] ちなみに、エラーの意味は "君が指定したデータベース名は指定された SQL Server インスタンスの中にないよ" っつー意味ね。
449 名前:441 [2007/09/10(月) 04:49:10 ID:g0Bkdph5] >>446 > ODBC で追加オプションは取れてるの? > ちなみにサーバーは (local)\SQLEXPRESS と指定するんだぞ。 > ドライバは SQL Server Native Client を指定する。 当たりでした。 ありがd 大感謝 m(__)m オヤスミナサイ
450 名前:NAME IS NULL mailto:sage [2007/09/10(月) 11:41:24 ID:???] >>441 ここも後始末しておいてください forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2115557&SiteID=7
451 名前:NAME IS NULL mailto:sage [2007/09/10(月) 16:40:30 ID:???] >>441 うわー 恥ずかし
452 名前:NAME IS NULL [2007/09/10(月) 16:53:24 ID:pZqYwMR/] すいません、質問です。 SQL Server2000 SP3を使用してRESTOREを行ったところ下記エラーがでて、データベースが開けなくなってしまいました。 Location: p:\sql\ntdbms\storeng\drs\include\record.inl:1447 Expression: m_SizeRec > 0 && m_SizeRec <= MAXDATAROW SPID: 51 Process ID: 740 接続しにいこうとすると既定のデータベースを開けませんといった旨のメッセージが表示されてしまいます。 DBCCを実行しても、復元中です。実行できませんとメッセージが表示され、実行することすらできません。 なにか復元する方法ないでしょうか?
453 名前:NAME IS NULL mailto:sage [2007/09/10(月) 18:25:46 ID:???] >>452 >SQL Server2000 SP3を使用してRESTOREを行ったところ下記エラーがでて、データベースが開けなくなってしまいました。 その手のアサーション関連の不具合をSP4で修正しているはず。 SQL Server 2000 SP4を用意して、リストアしてみたら。 ttp://support.microsoft.com/kb/841776/en-us FIX: Additional diagnostics have been added to SQL Server 2000 to detect unreported read operation failures ttp://support.microsoft.com/kb/827714/ja [FIX] NOLOCK ヒントまたは READ UNCOMMITTED 分離レベルを使用するとクエリが失敗してリテール アサーションが発生することがある >Location: Drive:\sql\ntdbms\storeng\drs\include\record.inl:1447
454 名前:NAME IS NULL [2007/09/10(月) 19:28:36 ID:pZqYwMR/] >>453 お返事ありがとうございます。SP4にして再度ためしてみました。 RESTORE DATABASEした結果、エラーメッセージが変わっただけで動作は変わりませんでした。 ファイル 1 で、データベース 'TEST'、ファイル 'TEST' の 1456 ページが処理されました。 ファイル 1 で、データベース 'TEST'、ファイル 'TEST_log' の 1 ページが処理されました。 メッセージ 7987、レベル 22、状態 1、サーバー TEST01、行 1 データベースの整合性の問題がデータベース 'TEST' から検出されました。DBCC CHEC KDB および DBCC CHECKCATALOGをデータベース 'TEST' で実行する必要があります。 同じようにDBCC CHECKDBなどをすると、「データベース 'TEST' は開けません。復元中です。」と出て実行できません。 なにか他に対処法ありますでしょうか? また最悪、復元が出来ない場合、バックアップファイルなどからデータを取り出すなどのことは可能なのでしょうか? バックアップファイルをテキストエディタなどで覗くと、データは入っているようなのですが……。
455 名前:NAME IS NULL mailto:sage [2007/09/10(月) 19:36:51 ID:???] >>454 もしかしてRESTORE DATABASE 〜 WITH NORECOVERYでリストアしているって事ない? WITH RECOVERYでリストアしてみたらどうなるかな?
456 名前:455 mailto:sage [2007/09/10(月) 19:43:03 ID:???] >>454 をよく読んでいなかった。 RESTOREが終わった時点で、整合性エラーを検出しているんだ。 ただ復元中って出ているから、データファイルの整合性をチェックしていて 時間がかかっているような気もする。
457 名前:452 [2007/09/10(月) 19:44:07 ID:pZqYwMR/] >>455 WITH RECOVERYでやっても変わりないみたいです
458 名前:452 [2007/09/10(月) 19:51:56 ID:pZqYwMR/] >>456 最初自分もそう思ったんですが、3時間ほどたっても変わらない状況です。 11MB程度のデータなんです。ディスクアクセスがたいしてあるわけでもなく、本当に復元中なのか謎な状態でして……。
459 名前:NAME IS NULL mailto:sage [2007/09/10(月) 20:14:37 ID:???] >>458 ここまできたらマイクロソフトに問合せてみた方が良いかも。 TechNetやMSDN、パートナー契約を結んでいたら、契約に含まれている 回数までは無償で問合せできるし。 以前、マイクロソフトに問合せた事があるけど、こういった (お金を払って契約している)ユーザーに対しては、かなり親切に対応してくれるよ。
460 名前:452 [2007/09/10(月) 21:06:18 ID:pZqYwMR/] >>459 そうですか。一度問い合わせてみることにします どうもありがとうございました。原因などがわかったら報告にきますね
461 名前:437 mailto:sage [2007/09/11(火) 06:34:23 ID:???] >>439 ,>>440 アドバイスありがとうございます。 いろいろ試してもだめだったのでVirtual Server 2005 R2にWindows Server 2008(32bit)入れて まっさらな環境にしてSQL SERVER 2005(32bit)入れて自己解決しました。 64bit鬼門すぎ
462 名前:NAME IS NULL mailto:sage [2007/09/12(水) 15:50:43 ID:???] BACKUP DATABASE tablename TO DISK = で出力デバイスをファイルにしたときファイルは ローカルファイルじゃないとダメなのでしょうか? ネットワークの共有フォルダだとエラーになるので きっとそうなんだろうとは思いますが・・・・・
463 名前:NAME IS NULL mailto:sage [2007/09/12(水) 18:01:56 ID:???] >>462 実際に読み書きするのはSQLServerのサービスプロセス。 サービスのアカウントが読み書きできるところなら出来る。 普通はネットワークにはアクセスできないアカウントで動いているので結果的に出来ない。
464 名前:NAME IS NULL mailto:sage [2007/09/13(木) 18:45:05 ID:???] >>441 いい加減、>>450 の後始末しろよw
465 名前:NAME IS NULL [2007/09/14(金) 09:15:16 ID:sLMOoozG] 素人ですいません、SQL Server 2005 Express EdtionのService Pack2のUpdateが失敗して更新出来ません。 エラーコードは0x65Bです。 黄色い盾が消えずに困ってます、宜しくお願いします。
466 名前:NAME IS NULL [2007/09/14(金) 10:34:24 ID:vxnEF19a] バックアップとってるなら原因探すよりSP2で再インストールさせたほうがはやいかもよ 別なPCでテストしてからのほうがいいけど 軽く検索した感じ回避策はいまいち見つかってないようだし
467 名前:NAME IS NULL [2007/09/14(金) 11:49:05 ID:sLMOoozG] そうですか、ありがとうございます。
468 名前:NAME IS NULL [2007/09/14(金) 12:01:29 ID:UtGDR6zs] 教えてください。 T-SQLで、列の規定値追加、変更は出来るのでしょうか? ALTER TABLEでは出来そうにないんですが...
469 名前:468 [2007/09/14(金) 14:45:52 ID:UtGDR6zs] 自己解決しました。 ALTER COLUMNじゃなく、ADD CONSTRAINTを使えばいいんですね。 よりよい方法が他にあったら、教えてください。
470 名前:NAME IS NULL [2007/09/16(日) 13:29:03 ID:uviOaQk6] 来週専門のほうでテストがあるんですがSQL Serverを勉強する際にいるSQLサーバーでなんかいいのありませんか? なるべく軽いのでお願いします
471 名前:NAME IS NULL mailto:sage [2007/09/16(日) 19:48:54 ID:???] >>470 意味がよくわからんが、先生か友達に聞いたほうがいいんじゃない? 多分 SQL Server Express と SQL Server Management Studio Express をダウンロードすればいいんだろうけど そこから途方にくれると思われ。
472 名前:NAME IS NULL mailto:sage [2007/09/16(日) 23:44:24 ID:???] >>470 Developer Editionでいいんじゃない。 Enterprise Editionと同じ機能で5000円位だし。
473 名前:NAME IS NULL mailto:sage [2007/09/17(月) 00:10:37 ID:???] >>470 SQL Server 2005 Express SQL Server Management Studio Express WebMatrix この3個で十分。 WebMatrix ではなく、Visual C# の無料版でもいいけど。 (Webプログラミングしたいのか、クライアントのアプリを作りたいのか)
474 名前:NONAME [2007/09/17(月) 11:27:06 ID:NjKQqxCi] Microsoft Windows XP Home Edition Microsoft Windows XP Professional The microsft Operating systems.
475 名前:NAME IS NULL mailto:sage [2007/09/18(火) 17:52:28 ID:???] WinXPで、MSDE2000Sp4を使っているんですが、コマンドラインからアタッチを使用とすると メッセージ 5173、レベル 16、状態 2、サーバー (SERVER)、行 1 ファイルを別のデータベースに関連付けることはできません。 とメッセージが出ます。 こういったエラーって何が原因なんでしょうか?
476 名前:NAME IS NULL mailto:sage [2007/09/18(火) 19:25:46 ID:???] >>475 コマンドラインからアタッチってのは sp_attach_db を自分で呼んでいるという意味か? Enterprise Manager を使ったらエラー無くアタッチできると解釈していいのか? 普通に考えて "sp_attach_db の構文を正しく記述してないから" とは思わないのか? プロファイラを起動して Enterprise Manager からアタッチするときどんな SQL 文が実行されているかをチェックしてみなさい。 ちなみに、エラーメッセージでぐぐったらそのエラーは別々のデータベースのデータベース ファイルをアタッチするように sp_attach_db を呼ぶと返されるってさ。
477 名前:475 mailto:sage [2007/09/18(火) 21:15:45 ID:???] >>476 レスありがとうです バッチファイルでsp_attach_dbを実行しているんですが、 別の環境では同じバッチファイルでも問題なくアタッチが出来るという状態です。 問題が起こっている環境の場所へいけないのがネックなんですが。 別々のデータベースファイルをアタッチするって、指定してるmdfとldfが別のデータベースって 認識されているってことなんですかね?
478 名前:NAME IS NULL mailto:sage [2007/09/18(火) 23:53:58 ID:???] >>477 自分で SQL ステートメントを書いて実行してみれ。 同じバッチファイルでも何かの事情で違う SQL ステートメントが生成、実行されることだってあるだろ? データベース ファイルを再度ちゃんとアタッチできる状態からコピーしなおしてみるってのもやってみな。 なんでエラーが起きてるのかはわからん。 バッチファイルが誤った SQL ステートメントを生成・実行しているのか、データベース ファイルに問題があるのか、・・・ ちなみにデータベース ファイルにはデータベース固有の GUID が振られており、データベース ファイル群の中に一つでも 異なる GUID を持つファイルがあると当該のエラーが出るらしい。 SQL Server でファイルとファイル グループのバックアップを復元する support.microsoft.com/kb/281122/ja このことを元にそのコンピュータや顧客の置かれている状況でどのような時にそんな状況が起きうるかとか、 どうすればいいかを想像してみれ。
479 名前:NAME IS NULL mailto:sage [2007/09/19(水) 00:03:47 ID:???] あとは、mdf だけ指定して sp_attach_db を実行すると LDF が勝手に作られるみたいだから、どうしようもなければそれでもいいかもな。
480 名前:475 mailto:sage [2007/09/19(水) 15:38:29 ID:???] アドバイスありがとうです。 最終的に479氏の手段で稼動させることはできました。 エラーの原因までは結局つかめてないけどな。 …自分の不勉強さを呪うわ…orz
481 名前:NAME IS NULL mailto:sage [2007/09/19(水) 19:52:48 ID:???] すみませんどなたかご教授を。。。 windows2000のDドライブ上にSQLServer2000を インストールして使用していました。 昨日Cドライブが死んでしまい、Dドライブはまだ生きているので とりあえずDVDに全てCOPYをし、別HDDにOSから入れ直している状態なのですが このDVD上のデータを再度インストールしたSQLServer上にリストアする事は 可能でしょうか? 教えてちゃんですみませんが、宜しくお願い致します。
482 名前:NAME IS NULL mailto:sage [2007/09/19(水) 20:09:29 ID:???] SQLの「データフォルダ」の全てのファイルをリストアすればいい。 master とか tempdb とか、お前さんが作った db名のファイルとか があるフォルダが、データフォルダ。
483 名前:481 mailto:sage [2007/09/19(水) 20:16:56 ID:???] >>482 早速のご返答有り難う御座います。 この場合のリストアって、 『フォルダ内のファイルを全部COPY』 ってことでよろしいでしょうか?
484 名前:NAME IS NULL mailto:sage [2007/09/19(水) 20:30:20 ID:???] 運用中に突然壊れたとかでなければ動くようになるとは思うが、 丸ごとコピーは正規のバックアップ方法でも正規の復旧方法でもないから、 とりあえずやってみろとしかいえんな。
485 名前:NAME IS NULL mailto:sage [2007/09/19(水) 20:37:26 ID:???] 上書きコピーでいくならサービスはとめてからやれよ〜
486 名前:481 mailto:sage [2007/09/19(水) 20:53:09 ID:???] >>484 有り難う御座います! やってみます。
487 名前:NAME IS NULL [2007/09/20(木) 00:37:40 ID:30mbiUwW] SQLサーバーデータベースの再編成ってどうやるの。 そもそも必要なの?
488 名前:NAME IS NULL mailto:sage [2007/09/20(木) 10:47:50 ID:???] >>487 再編成という言葉が何を意味しているのかわからないが。
489 名前:NAME IS NULL mailto:sage [2007/09/20(木) 10:57:32 ID:???] >>487 DBCC DBREINDEX または DBCC INDEXDEFRAG が索引の再編成。これはデータの追加削除が激しいならまめにやったほうがいいな。 クラスタ化索引の再編は時間がかかるから、 総容量の大きなテーブルは非クラスタ索引にしておくのも一手。 データ部の再編は基本的に必要ない。 MSSQLは8Kの固定ページサイズなので空きページの再利用は自動でかつ効率よくやってくれる。 空きページをファイルシステムに返して開放したいなら DBCC SHLINKDATABASE を使う。
490 名前:NAME IS NULL mailto:sage [2007/09/20(木) 15:56:09 ID:???] >>489 DBCC SHRINKDATABASE ね
491 名前:NAME IS NULL [2007/09/20(木) 16:48:59 ID:ZZNi8NHK] SQL Server2000 で、作成されているテーブルに付いてなのですが、 Managerから、該当するテーブルを開いてみると、データが入っているはずの 項目を見ても空になっています。 その際、そのセルにカーソルを合わせて、何か編集を行うとすると 「このセルは編集できません。」とエラーが出ます。 全てのデータがなっている訳ではなくて、ポツポツとあります。 こうなっているフィールドの型はntext型になります。 リンクテーブルやデータのエクスポートでAccessからみると、 どちらも正しくデータが入っています。 ただし、リンクテーブルの場合、全てのレコードでデータの変更は出来ません。 何か解決策はありますでしょうか? ちなみに、一度デタッチ → アタッチをしてみましたが、変化はありませんでした。
492 名前:NAME IS NULL mailto:sage [2007/09/20(木) 17:22:31 ID:???] >>491 わかんないけど、Unicode で入ってて SJIS で表示できない文字でも入ってるんじゃないの?
493 名前:NAME IS NULL mailto:sage [2007/09/20(木) 17:27:38 ID:???] ntext型だとManagerからはちゃんと見れなかった気がするぞ。 他の方法で更新するしかなかったような
494 名前:NAME IS NULL [2007/09/20(木) 19:42:28 ID:30mbiUwW] >>489 どうもありがとう
495 名前:NAME IS NULL [2007/09/20(木) 20:03:14 ID:T4Z4T0FU] bcpでCSVをインポートする方法を教えてください。 接続してる状態じゃなければだめとかもわかりません
496 名前:NAME IS NULL [2007/09/20(木) 21:19:30 ID:K6Y78rP2] >接続してる状態じゃなければだめ つうか、インポートするためにはSQLサーバに接続しないとダメなわけで… (オフラインとかいう考え方あるなら、俺もやり方知りたい)
497 名前:NAME IS NULL mailto:sage [2007/09/20(木) 23:59:11 ID:???] >>495 1. bcp /? 2. bcp "-c" csv in でぐぐれ 3. 次のリンクを見れ ttp://winofsql.jp/VA003334/msde050901234004.htm
498 名前:NAME IS NULL [2007/09/21(金) 14:30:11 ID:6dTeJjeC] SQL Server 2005 expressに関して質問です。 SQL Server MSEのログイン-新規作成で、他マシンのユーザを Windows認証で追加したいのですが、他マシンのログイン名 (domain\username)が通りません。 [検索(E)]ボタンを押して「場所を指定してください」の[場所(F)]を クリックしても、他マシンのドメインが現れません。 他マシンには管理者権限でパスワード設定済のユーザを作って ありますが、そのユーザを追加できないのです。 考えられる原因について、どなたかアドバイス頂けませんか。
499 名前:NAME IS NULL mailto:sage [2007/09/21(金) 14:53:35 ID:???] >>498 Active DirectoryやWindows Domainにそのコンピュータや追加するコンピュータは参加してる?
500 名前:NAME IS NULL mailto:sage [2007/09/21(金) 15:09:51 ID:???] >>499 それぞれのマシンは同一ワークグループ内にあり、相互の共有 フォルダへのアクセスや、SQLServer認証でのサーバへの接続 は可能ですが、Active DirectoryやWindows Domainに関しては 「それが何か」ということ自体を知らないのが現状です。 不勉強で申し訳ありません。 一度調べてみます。ありがとうございました。
501 名前:NAME IS NULL [2007/09/21(金) 21:56:31 ID:9ro8Xx3l] >>498 ユーザアカウントの作り方からして間違っている。 Windows2000pro. or WindowsXPしかないワークグループ環境でWindows認証を 行う場合は、SQLServerにではなくコントロールパネルから"ユーザアカウント" 又は"管理ツール"→"コンピュータの管理"→"ローカルユーザとグループ"で ユーザアカウントを作らなければならない。 ちなみに作成したアカウントが Administratorsグループに所属するとSQLServer 内では owner属性で扱われ全てのデータベース、テーブルで操作ができる。 対してUsersグループに所属する場合はSQLServerにConnectはできるけれど どのデータベースも操作できない。当然、テーブルの読み書きもできない。 相応の権限のロールが必要。 ワークグループのみでもちゃんとWindows認証でリモート接続できるからな。
502 名前:NAME IS NULL mailto:sage [2007/09/27(木) 16:28:24 ID:???] Oracleからの移行でトリガの移行をしようとしてるんだけど構文が解らないので エロイ人、教えてください・・・・ Oracleのトリガ構文は・・・・ CREATE OR REPLACE TRIGGER NULLPO.TRG_MONANEKO BEFORE INSERT OR UPDATE ON NULLPO.MONANEKO REFERENCING OLD AS OLD NEW AS NEW BEGIN IF :NEW.NOTE IS NULL THEN :NEW.NOTE := SYSDATE; END IF; END; / なんですが、SQLServerには:NEWやら:OLDが無いらしいのですが これをTransact-SQLに置き換えるとどんな構文になるか教えてください。
503 名前:NAME IS NULL mailto:sage [2007/09/27(木) 17:09:31 ID:???] >>502 試行はしていない。 影響のあった行の参照はinserted/deletedの特殊表を使うが、 この表自体を変更することは出来ないので、 このケースでは必ず主キーが必要になる。 create trigger NULLPO.TRG_MONANEKO on NULLPO.MONANEKO after insert, update as update NULLPO.MONANEKO set NOTE = GETDATE() where PKEY in (select PKEY from inserted where NOTE is null)
504 名前:502 mailto:sage [2007/09/27(木) 17:29:04 ID:???] >>503 エロい人ありがとう! なるほど〜。随分、ボラクルとは作法が違うのですね。 これで解決しそうです。 ありがとうございました。
505 名前:NAME IS NULL [2007/09/27(木) 22:42:26 ID:aY73QQtY] SQLServerを使用して、c#.netをやってます! さっそく質問なのですが、Datetime.Nowで値を取得するとyyyy/mm/ddまでの値しか取得できません。 後で排他処理をする時、時間まで取得したいのですがどうすればいいでしょうか? それともDB側では暗黙的に時間も入っているのでしょうか?
506 名前:NAME IS NULL mailto:sage [2007/09/27(木) 22:55:14 ID:???] 単純にC#でDateTime.Nowの値は、時刻も含まれるはずだが。
507 名前:NAME IS NULL mailto:sage [2007/09/28(金) 01:08:41 ID:???] >>506 の説明とあわせて、日付のみ指定した場合は DB 側で暗黙的に時間を入れることはない。 というかそんな質問が出てることは、テーブルの内容を SELECT して確認することもしていないのか? あとはここでも読んでくれ。 ttp://www.atmarkit.co.jp/fdotnet/dotnettips/200customdate/customdate.html
508 名前:NAME IS NULL mailto:sage [2007/10/02(火) 00:36:18 ID:???] SQL Server 2005 Expressと、SQL Server Management Studio Expressで フルテキスト検索のテストをしてるのですが、 USE [testdb] GO select * from dbo.Customer where contains(name, '太陽企画'); このようなコードでマッチしません。nameには'太陽企画'という データはあるのですが、なぜでしょうか・・・。 フルテキストカタログとフルテキストインデックスは作成してて、 name like '太陽企画'ならマッチするんですが・・・。むずい・・・
509 名前:NAME IS NULL mailto:sage [2007/10/02(火) 00:46:07 ID:???] >>508 ちとこの2つは調べてみてくれ。 '太陽' や '企画' では検索できるか? FREETEXTでは検索できるか?
510 名前:NAME IS NULL mailto:sage [2007/10/02(火) 21:11:03 ID:???] すいません。ありがとうございます・・・。 カラムの型をtextからntextとかnvarchar(MAX)のunicodeにしたら ちゃんとマッチするようになりました。。。textだと、 '太陽'とか'企画'でもマッチしませんでした。。。
511 名前:NAME IS NULL [2007/10/03(水) 04:21:23 ID:BPM1pdYY] こんばんは。 SQL Server 2000を使用しています。 あるテーブルに200万レコード程のデータがあります。 カラムはint型が3つに、image型が1つです。 Enterprise Managerのタスクパッドを確認すると、そのテーブルの サイズは約2GBとなっています。 DELETE分でレコードを約150万レコード程削除してもサイズは数MBしか 小さくなりませんが、約160万レコード程削除するとサイズが1.5GB程 小さくなり、0.5GB程になります。 DELETE件数とデータサイズが比例していないのですが、SQL Serverは このような動きをするのでしょうか。 比例してサイズを小さくさせる事は可能でしょうか。 よろしくお願いいたします。
512 名前:NAME IS NULL mailto:sage [2007/10/03(水) 15:48:17 ID:???] DBCC SHRINKDATABASE とか調べて
513 名前:NAME IS NULL mailto:sage [2007/10/03(水) 16:26:00 ID:???] >>511 DELETEした時点でサイズが縮小されるの? SQL Serverでは一度確保した領域は、DBCC SHRINKFILEとかSHRINKDATABASEをやらないと 縮小されなかったはずだけど。 (ただしデータベース作成時に設定したサイズ以下にはサイズを縮小できない) あと、DELETEするとトランザクションログにログが記録されるから、ログファイルのサイズ増えているような気も。
514 名前:NAME IS NULL mailto:sage [2007/10/03(水) 16:31:01 ID:???] SQL Server 2000 で、動作しているシステムがあります。 この度、もう1台サーバーと SQL Server 2000 を用意して、 現在のサーバー → 新サーバーに、リアルタイムにデータをコピーして、 もし、現在のサーバーが壊れた時に、新サーバーに切替えを行なう事を考え ています。 SQL Server 2000 同士で、リアルタイムにデータをコピーする手法があれば教えて 頂けないでしょうか?
515 名前:NAME IS NULL mailto:sage [2007/10/03(水) 17:10:05 ID:???] >>511 >Enterprise Managerのタスクパッドを確認すると、そのテーブルの >サイズは約2GBとなっています。 テーブルのサイズはどこで見れますか? データベースのサイズなら>>512-513 のとおりだと思います。 オプションでDBの自動圧縮がオンになったりしてますか?
516 名前:NAME IS NULL mailto:sage [2007/10/03(水) 17:20:56 ID:???] >>514 スタンバイサーバーかレプリケーション
517 名前:511 [2007/10/04(木) 03:15:48 ID:nx6lfmnn] みなさん、コメントありがとうございます。 >>512 SHRINK DATABASEを行ってもサイズはの変化はありませんでした。 DbId FileId CurrentSize MinimumSize UsedPages EstimatedPages 11 1 263672 1280 261768 261768 11 3 29736 1280 29728 29728 11 2 1280 1280 1280 1280 >>513 >DELETEした時点でサイズが縮小されるの? 削除したレコード数によっては縮小される時とされない時があります。 >SQL Serverでは一度確保した領域は、DBCC SHRINKFILEとかSHRINKDATABASEをやらないと >縮小されなかったはずだけど。 >(ただしデータベース作成時に設定したサイズ以下にはサイズを縮小できない) DBCC SHRINKDATABASE,SHRINGFILEを実行してもあまり圧縮されませんでした。 >あと、DELETEするとトランザクションログにログが記録されるから、ログファイルのサイズ増えているような気も。 はい、こちらは300MB程増えていました >>515 >テーブルのサイズはどこで見れますか? タスクパッドのテーブル情報タブにて確認しています。 >オプションでDBの自動圧縮がオンになったりしてますか? オフ(未選択)になっていました。 以下、タスクパッドでのテーブルサイズの詳細です。 イベント, 行,サイズ,インデックスサイズ 元データ, ,925099,2101752,248 レコード削除1(543478件) ,381621,2071048,248 SHRINK DATABASE ,381621,2087264,248 レコード削除(240467件) ,2141154,769912,248 以上です。よろしくお願いいたします。
518 名前:NAME IS NULL mailto:sage [2007/10/04(木) 04:11:01 ID:???] >>517 >タスクパッドのテーブル情報タブ が情報をどこから持ってきてるかによるな。 おそらく統計情報だろうから統計の更新が遅れてるだけじゃないかと思う。 情報タブの表示のスピードから見て少なくとも表示ごとに生の情報を持ってきてはいないはず。 sp_updatestatsを実行してみて変わらなかったらまた報告してくれ。
519 名前:512 mailto:sage [2007/10/04(木) 15:18:01 ID:???] 投げっぱなしもなんなんで ttp://support.microsoft.com/kb/317375/ja ttp://support.microsoft.com/kb/307487/ja?spid=2852&sid=1053 ttp://support.microsoft.com/kb/873235/ja ttp://support.microsoft.com/kb/296386/ja?spid=2852&sid=1053 7.0用だけど ttp://support.microsoft.com/kb/256650/ この辺も見ておくと幸せになれるかも
520 名前:NAME IS NULL mailto:sage [2007/10/05(金) 01:17:16 ID:???] >>511 だいぶ横道に逸れてるようだけど、内部構造を調べてもあんまり意味ないよ。 いったい何がしたいの? いっぱいデータを消した後にデータベース ファイルのサイズを小さくしたいのであれば DELETE ステートメントの実行後に DBCC SHRINKDATABASE を実行する。これだけ。 >>517 でサイズの変化がないとか言ってるけど、ファイルがぎっちぎちに詰まってるから これ以上小さくできないだけ。 圧縮って言っても zip や lzh みたいにファイルを小さくするわけじゃなくて、 予約だけされていて使われてない空の部分を OS のファイルシステムに返すだけだから、誤解の無いように。
521 名前:511 [2007/10/08(月) 10:47:57 ID:ejBEkIGa] 回答が遅れ申し訳ありません >>518 sp_updatestatsを実行してみましたが、変化はありませんでした。 >>519 ありがとうございます。これから内容を確認してみます。 >>520 このテーブルには毎日多くのデータが追加されるので一定期間で削除したいのですが、 前述のようにDELETEしてもテーブルサイズやデータファイルのサイズが小さくなりません。 この状態で運用を続けるとサイズがどんどん肥大化していくので、 どこかでディスク空き容量が無くなってしまう懸念があります。 内部構造的にどこかのタイミングで縮小されるようならいいのですが、 そういった情報を見つけることができておりません。
522 名前:NAME IS NULL mailto:sage [2007/10/08(月) 13:48:33 ID:???] >>521 クラスタ索引があるとデータリーフも索引の一部になるので削除したあとの再利用がされにくい。 おそらくページかエクステント内から完全にデータがなくならないと再利用されないと思う。 デフォルトだと主キーがクラスタ索引になるので、再利用を早めたいなら主キー索引の再編成が必要になるだろう。 データの追加削除が多いようなら、主キーを含めすべて非クラスタ索引にするのがいい。
523 名前:NAME IS NULL mailto:sage [2007/10/15(月) 05:10:41 ID:???] VB6からADOでSQL SERVER 2000を使う仕事をしています(Access+DAOからの移行です)。 WHERE節で複数条件をAndでつなぐと、やたらにSELECT(DELETEやUPDATEも)が遅くなるような気がしているのですが、 回避方法はありますでしょうか? いったん単独条件でSELECTしておいて、残りはFilter指定でやるようにすると劇的に改善されるのですが、面倒です。 また、劇的に改善されるといっても絶対的な速度はたいしたことなく(元が死ぬほど遅いので)、 「Accessのときより遅い」とクレームがつきそうです。 インデックスは複数フィールドをまとめた状態で設定されているのですが、これがまずかったりするのでしょうか。 元がAccess+DBOなので、.Seek用に作られた名前付きIndexがそのまま移行している形になっています。 既出かとは思いますが、どうかよろしくお願いします。
524 名前:NAME IS NULL mailto:sage [2007/10/15(月) 05:19:00 ID:???] DBO × DAO ○ ですね。すみません。
525 名前:NAME IS NULL mailto:sage [2007/10/15(月) 09:42:50 ID:???] >>523 一般論から言えばそういうことはない。使い方を間違っているか別の要因が関係している。 具体的な例をあげてもらえば個別に解説できると思う。 ホントどISAMであるJETDB(DAO)からRDBへの移植はそれぞれ特性も違いかなり難しい。 単純にコンバートしようとするとパフォーマンスや動作上の問題が多数発生する。
526 名前:NAME IS NULL mailto:sage [2007/10/15(月) 17:39:56 ID:???] >>523 インデックスがうまく効いていないんじゃないかな。 クエリアナライザで実行プランを確認してみて。 あとは、クエリアナライザのインデックスチューニングウィザードを試してみるとか。
527 名前:NAME IS NULL [2007/10/18(木) 00:07:25 ID:2wtlRKYh] 日時を格納するフィールドに、datetim型を使うか(n)charを使うか迷ってるんですが、どっちがいいですか?
528 名前:NAME IS NULL [2007/10/18(木) 07:55:20 ID:PHcDACtf] データ量を減らすために、charに一票
529 名前:NAME IS NULL mailto:sage [2007/10/18(木) 09:28:50 ID:???] >>528 DATETIMEは8byte。 でもまあ、日付だけで時刻はいらないような場合は悩むな。 ANSI-SQLのDATEとINTERVALは欲しい。
530 名前:NAME IS NULL mailto:sage [2007/10/18(木) 12:53:00 ID:???] お前ら意外と理解あるのなw
531 名前:NAME IS NULL mailto:sage [2007/10/18(木) 12:53:30 ID:???] ↑誤爆です><
532 名前:528 mailto:sage [2007/10/19(金) 00:52:16 ID:???] datetime型だ、SQLで加工するのがややこしかったので、データ量を犠牲にして文字列型でいくことにしました。 レスくれた方ありがとう。
533 名前:NAME IS NULL [2007/10/23(火) 17:38:48 ID:4X2HVnn9] SQLServer初心者です。 VB2005からSQLServer2005への接続について質問させて下さい。 同サーバーのプロジェクト名Test_dbにテスト接続はできるのですが、 データソース構成ウィザードで、テーブル、ビュー等の左側に「+」「−」 が無く、展開できません。 データソース、データセットとして実態を 取込めません。 ちなみにVB2005からAccessのテーブルをデータソース、データセットとして取込む事は できました。 SQLServerから取込むにはどの様にするば良いでしょうか。 アドバイスお願いします。
534 名前:NAME IS NULL mailto:sage [2007/10/23(火) 18:27:30 ID:???] dtsxのパッケージを作成してサーバ側に配置インストールしたんですが動作しません。 開発環境PCのAと、サーバPCのBがあります。 パッケージの作成はAで行い、AのVS2005でのパッケージ作成とデバッグ実行では問題なくSQLが成功します。 buildしてできたdtsxファイルをAで開き、そこから直接実行しても問題なく完了します。 このdtsxをBにコピーし、ダブルクリックから起動して直接起動するとエラーが出ます。 エラー内容はどうも接続部分で躓いている様子です。 SQLServerにパッケージインストールウィザードで配置し、JOBに登録してから実行してもエラーが出て エラーログなどを見るとやはり接続関係で止まっているようです。 逆、つまりBで実行できてAで実行できないというならわかるんですが(Aで作る時、接続先は外部PCのBへのConnectionになっているので) Bで実行できないというのがよくわかりません。 エラー内容は エラー:接続"server.testdb.sa" を取得できませんでした。接続が正しく構成されていないか、この接続に必要な権限が不足している可能性があります。 です。 どちらからも繋がらないなら構成が間違ってるのか権限がないのかというのは見直すのがわかるんですが Aからは繋げてBから繋げないので、構成とか権限はあってるように思うんですが。
535 名前:NAME IS NULL mailto:sage [2007/10/23(火) 18:49:27 ID:???] データ量どうのこうのというより、データベースはデータが命なわけで、 ありえない日付とか挿入されてデータに不整合が発生しないように、ありえない日付の挿入をブロックしてくれる 日付型を使うべき。もちろん、大抵のアプリの場合、フロントエンドでも、ユーザービリティの観点から たいていは日付のチェックを行うが、それがかりにバグってても、日付型にしておけば、 最後の関門のデータベースの日付チェックでありえない日付をはじいてくれるから安心。
536 名前:NAME IS NULL mailto:sage [2007/10/24(水) 01:41:06 ID:???] DATE型があれば、それでいいけどDATETIMEだと日付入れる場合時間なしで入れないと いけないのに'2007-10-23 10:00'とか入れてしまうともう駄目
537 名前:NAME IS NULL mailto:sage [2007/10/24(水) 01:41:37 ID:???] 今回のシステムはintで日付を持ってる。20071023みたいに。
538 名前:NAME IS NULL [2007/10/24(水) 07:53:08 ID:TfcxssxI] 正当性の判定をユーザが作るなら、intで待ち受けてもいいかもな 20071303 をエラーとはじいたり 20071131 をエラーとはじいたり というチェックルーチンを作るのは結構めんどくさい 一番めんどくさいのは、うるう年判定
539 名前:NAME IS NULL mailto:sage [2007/10/26(金) 12:12:15 ID:???] 初心者質問ですがよろしくお願いいたします。 コマンドからデータベースを作成しようとしていますが、データベース名に 変数を使うとうまくいきません。 変数を使ってうまく作成する方法はありますか? ちなみにこの文で実行しました。 Use master; GO DECLARE @unko varchar(10) Set @unko = 'unko' begin CREATE DATABASE @unko end ---------------------------- 以下、処理結果です。 Use master; データベース コンテキストが 'master' に変更されました。 DECLARE @unko varchar(10) Set @unko = 'unko' begin CREATE DATABASE @unko end メッセージ 102、レベル 15、状態 1、サーバー Temp\SQLEXPRESS、行 5 '@unko' 付近に不適切な構文があります。
540 名前:NAME IS NULL mailto:sage [2007/10/27(土) 04:55:10 ID:???] >>539 varchar の変数にステートメントをまるごと格納して、exec の引数として渡す。
541 名前:NAME IS NULL mailto:sage [2007/10/29(月) 10:56:52 ID:???] >>540 おお、以下のとおりやってみたら成功しました。 ありがとうございました。 Use master; GO DECLARE @unko varchar(10), @query varchar(100) SET @unko = 'unko'; SET @query = 'CREATE DATABASE ' + @unko; EXEC (@query) GO
542 名前:NAME IS NULL mailto:sage [2007/10/29(月) 13:14:01 ID:???] MSSQLから、mysql用にデータベースのエクスポートをすることはできますか? mssqlの知識が無いので、わからないのですが、 テーブルの定義やデータ等、テキストファイルだけでのエクスポートはできないのでしょうか? 拡張子がbakファイルのもらったのですが、 データのヘッダー1文字目に「TAPE」とあるので、 テープバックアップしたバックアップファイルで、これは単なるmssql用データなのでしょうか?
543 名前:NAME IS NULL mailto:sage [2007/10/29(月) 13:38:34 ID:???] >>542 エクスポートのやり方や形式に互換性なんて無い。 あとマルチまがいはやめたほうがいい。どっちかに移動した旨を書いておけ。
544 名前:sage [2007/10/29(月) 15:57:07 ID:7E2B0ILf] 質問です。 SQLSERVER2000のSP3で、毎日のバッチ処理でデータを追加するテーブルがあります。 そのテーブルには主キーが設定していています。(仮に「キー」という列に設定したとします。) この「キー」はデータを追加する際に現在の最大値から連番で振っています。 このテーブルのデータは、バッチ処理での追加はありますが、DELETEはありません。 UPDATEはしています。 DBの保守計画で、整合性チェックと最適化を毎日動かしていましたが、ある日、いきなり 整合性チェックと最適化JOBでエラーになり始めました。 「DBCC CHECKDB」で調べてみたところ、上記のテーブルで一貫性エラーが発生していると出ました。 設定してあった主キーを外し、「キー」で重複するデータを探したところ、データ内容がまったく 同じデータが何件か存在しました。 バッチ処理でデータを追加する際にこのようなデータが発生してもテーブルの主キーを設定している のでエラーになるはずです。 このような現象が発生する理由をご存知の方はいないでしょうか。 宜しくお願いします。
545 名前:NAME IS NULL mailto:sage [2007/10/29(月) 16:48:33 ID:???] >>544 理由を聞きたいの?ディスク上にあるデータが壊れたか、SQL Server のバグ。
546 名前:NAME IS NULL mailto:sage [2007/10/29(月) 16:54:37 ID:???] >>544 その主キーは非クラスタ索引ですか? それならば、誰かが索引を無効にした、またはIOエラーなどで無効になった可能性が高い。 BCPでロードしなおしたとかない?
547 名前:NAME IS NULL mailto:sage [2007/10/29(月) 17:05:47 ID:???] >>545 SQLSERVERのバグでしょうか。直してもまた別テーブルで同じ現象が出てきますし。 >>546 恐らく非クラスタ索引ではないと思います。 EnterpriseManagerのテーブルデザインで主キーを設定しただけで、インデックス等の設定はしていません。
548 名前:NAME IS NULL mailto:sage [2007/10/29(月) 17:09:40 ID:???] >>547 クラスタ化索引なら索引が無効になった段階でテーブルが使えなくなるので、 オペミスで無効にしてしまった線は消える。 他でも起きるならバグよりもディスクのIOエラーを疑ったほうがいいと思う。
549 名前:NAME IS NULL mailto:sage [2007/10/29(月) 17:21:43 ID:???] >>548 テーブルのデザイン時に主キーを設定したら、その項目はクラスタ化索引になるはず。 ディスクのIOエラーというのは、HDDの障害ということですよね? 交換したら直るのかもしれないということですか。 SQLSERVER2000を触るのが私だけですのでオペミスは考えていませんでした。 説明が足りずに申し訳ありません。
550 名前:NAME IS NULL mailto:sage [2007/10/30(火) 00:30:23 ID:???] とりあえず SP4 にするこったな。 SP4 じゃないとディスク I/O エラーが起きてもログ取れないし。
551 名前:NAME IS NULL mailto:sage [2007/10/31(水) 02:13:53 ID:???] コンプライアンス云々で実行されたSQLコマンドをすべてログにとれるDBを探していますが、 SQLserver2000あるいは2005は指定のDBに対してSQLが実行されたとき、 そのSQLコマンド(Insert Update Delete)をログにとることはできますか?
552 名前:NAME IS NULL mailto:sage [2007/10/31(水) 07:08:33 ID:???] >>551 トリガー
553 名前:NAME IS NULL mailto:sage [2007/10/31(水) 12:28:23 ID:???] >>551 サーバートレースでもいいかな。遅くなるけど。まあ全部ログに落としたらどんな DB 製品でも遅くなるか。
554 名前:NAME IS NULL mailto:sage [2007/10/31(水) 17:20:01 ID:???] >>552 もうちょっと詳しくお願いできませんでしょうか? >>553 DBの処理をトレースするソフトを導入するってことですか?
555 名前:NAME IS NULL mailto:sage [2007/10/31(水) 23:15:27 ID:???] >554 ちょっとSQLServerの付属のプロファイラ実行してみろ。 ただ、全部残すと恐ろしいログのサイズになるので適当にフィルタして欲しいクエリだけ残るようにがんばってくれ。 トリガーだと更新されたレコードはわかるけどSQL自体はわからないね。 変更履歴のログという感じには使える。というか使ってる。
556 名前:NAME IS NULL [2007/11/01(木) 11:46:18 ID:zHDwSPx0] 金額を切り上げた数字をSELECT文で書きたいのですがどうすればいいでしょうか? 例 1000⇒1000 1001⇒1100 1099⇒1100 と言う風に出したいのですが可能なのでしょうか?
557 名前:NAME IS NULL mailto:sage [2007/11/01(木) 13:03:37 ID:???] >>556 ttp://pc11.2ch.net/test/read.cgi/tech/1187667616/312
558 名前:NAME IS NULL mailto:sage [2007/11/01(木) 16:35:52 ID:???] SQL Serverをパブリッシャにして、外部のPostgreSQLをサブスクライバにして、 レプリケーションを行いたいと考えています。 単純に、PostgreSQL用のODBCドライバを組み込んで、SQL Serverからサブスクライバとして 登録しようとしましたが、 SQL Server側からは、OracleとIBM DB2しか見えていないようです。 どなたか原因が分かる方がいらっしゃいましたら、教えて下さい。
559 名前:NAME IS NULL mailto:sage [2007/11/01(木) 20:14:39 ID:???] >>555 実行したいのですが、ログがとれるとわからないと経費が下りないんで手元にモノがないのです プロファイラというのを実行すればSQLコマンドのログを指定のフィルタを通したものだけ保存できると思っておkですか?
560 名前:NAME IS NULL mailto:sage [2007/11/01(木) 21:01:39 ID:???] >559 プロファイラはSQLServer付属のツール。 SQLServerすらも手元にないとでも? プロファイラの理解はそれでおk
561 名前:NAME IS NULL mailto:sage [2007/11/01(木) 21:22:10 ID:???] >>559 いったいどんな会社だ?評価版とかあるだろうが。新人に何も教えず丸投げとか? でも新卒だとしてももう半年以上経ってるんだしなあ。 ちょっとは隣の席の人とでも会話したほうがいいんでねーの?
562 名前:NAME IS NULL [2007/11/02(金) 21:11:31 ID:gdtcmQpZ] SQLserver2005EEというのがタダらしいのでそれで調べたいと思います ありがとうございました
563 名前:NAME IS NULL mailto:sage [2007/11/03(土) 10:51:57 ID:???] >2005EE エンタープライズ エディションと一瞬勘違いしたじゃないか w エキスプレス エディションね 管理用のGUIツールが付かない点と、DBのログオプションが シンプル(切り捨てモード)と言う以外は、同じように使えるんじゃないかな。
564 名前:NAME IS NULL mailto:sage [2007/11/03(土) 12:54:17 ID:???] SQL Server Management Studio Expressも思い出してあげてください
565 名前:NAME IS NULL mailto:sage [2007/11/03(土) 14:21:23 ID:???] 思い出しました。 確かに、そういう便利な純正ツールもあるよな。 社内のデータベースを、エクスプレス・エディションで動かしたら 何か問題あるかな?(ライセンスの) VisualStudioの奴は業務で使うとライセンス違反らしいが…
566 名前:NAME IS NULL mailto:sage [2007/11/03(土) 23:40:12 ID:???] エキスプレス エディションってなんかの汁でも出るのかよwww
567 名前:NAME IS NULL mailto:sage [2007/11/04(日) 12:23:30 ID:???] くだらんつっこみだなぁ 頭の悪さがにじみでてるな アメリカンエキスプレスとか普通に言うし どうでもいいだろう。
568 名前:NAME IS NULL mailto:sage [2007/11/04(日) 20:16:54 ID:???] 汽車の窓からハンケチふれば牧場の乙女も花束投げる♪ エキスプレス、ビルヂング、ハンケチ・・あんにゅい感じがして好きだな。 eXPress EditionでXPの方がEnterprise Editionとかぶらなくていい。 ただWinXPとかぶるからMSはやらないだろうが。
569 名前:NAME IS NULL mailto:sage [2007/11/05(月) 00:31:24 ID:???] >>567 まあ気付いてると思うけど、それに突っ込みいれてる一番つまらないのは君だからね
570 名前:NAME IS NULL mailto:sage [2007/11/05(月) 13:31:36 ID:???] はいはい(苦笑
571 名前:NAME IS NULL [2007/11/05(月) 14:38:35 ID:wDZ2lOpO] 初心者質問ですがよろしくお願いいたします。 SQL Server Management Studio 2005で データベースの復元中に処理を中断したら、 データベース名(復元しています...)と表示されました。 データベースのプロパティを開こうとすると 「データベース'データベース名'は開けません。復元中です。 (Microsoft SQL Server、エラー:927)」 と表示されます。 それから3時間程ずっとその状態なんですが、 まってればそのうち復元が完了するのでしょうか?? どなたか原因及び解決方法が分かる方がいらっしゃいましたら、 教えて下さい。
572 名前:NAME IS NULL mailto:sage [2007/11/06(火) 13:35:58 ID:???] 運用開始後、テーブル設計を変更(追加/更新)する場合、 更新版DBのテーブルを空にして、運用サーバを一旦落とし、 運用版→更新版にデータを取り込むんでしょうか? 運用版DBと更新版DBの構造を比較して、更新部分のSQL文を生成して くれるツールがあるのでしょうか?
573 名前:NAME IS NULL mailto:sage [2007/11/06(火) 21:04:12 ID:???] 新テーブル CREATE 旧テーブルから新テーブルへデータコピー UPDATE 単純にこれだけじゃないのか? VB.NET とか、 ASP.NET で簡単にプログラム組めば終わりのはずだが サーバを落とす必要性を考えた理由は?
574 名前:NAME IS NULL mailto:sage [2007/11/07(水) 00:02:19 ID:???] >572 エンタープライズマネージャでテーブルを変更するときのクエリを保存したり、 Visioでテーブル構造を取り込んでそれを反映したりとかできる。 自動で作られるクエリは一時テーブルにデータを移して作り直しだからデータ量が多いと結構痛いことになるかも。 データ量が多いテーブルで列追加くらいならalter tableを自前で書いてるよ。 列のサイズが変わったりとか大幅に変更になる場合は動かしながらは無理。いったん止めないと駄目だね。
575 名前:NAME IS NULL [2007/11/07(水) 09:15:33 ID:ou6vFdyT] すみません、初心者です。 知っていたら教えて欲しいのですが、 SQLServer2000使用で、フィールド数を300程度を設けたいのですが、 Access2003からSQLServer2000を参照する場合、 全部のフィールドを参照・編集することはできるのでしょうか? 確かAccessは使用可能フィールド数が255だったと思うのですが・・・
576 名前:NAME IS NULL mailto:sage [2007/11/07(水) 11:41:59 ID:???] 質問です。 [サーバ] WindowsServer2003 SQLServer2005 上記のサーバが複数台、LAN上に配置されています。 各サーバには、各サーバ上で動作するストアドがあります。 このストアドを更新する際、各サーバ間でVersionを合わせる必要があります。 私の知識では、各サーバ上でALTER PROCEDUREを流すことしか思いつかないのですが、 他に便利な方法等ありますでしょうか? よろしくお願いいたします。
577 名前:572 mailto:sage [2007/11/07(水) 13:11:47 ID:???] >>573 >>574 レス、有り難うございます > データ量が多いテーブルで列追加くらいならalter tableを自前で書いてるよ。 旧DBの新DBを完全比較して、更新用のDDLを生成してくれるツールがあると、 それをユーザに配布して、実行してもらうだけで済むので凄く楽なんですが。 すべての変更点をDDL文に落とすおは、私には厳しい感じです 次善策として、テーブルを空にした新DB.MDFを拠点の管理者に配布 して、アタッチして、旧DB.MDFのテーブルデータを全部取り込むし かないのかな、と。 (これだと旧DB.MDFをDropした後に、新DB.MDF→旧DB.MDFに戻さない といけないような) > サーバを落とす必要性を考えた理由は? 一般ユーザの旧DBへのデータ更新を防ぐため、だったのですが、 一般ユーザがアクセスできないようにすれば、サーバは落とす 必要はないですね
578 名前:NAME IS NULL mailto:sage [2007/11/07(水) 15:26:40 ID:???] >>575 フィールド300もあるテーブルの設計に問題はないのかと・・・
579 名前:NAME IS NULL mailto:sage [2007/11/07(水) 16:00:40 ID:???] >>578 だよな。1フィールドの中に色々詰め込んでプログラムでばらせば半分以下だぜ。
580 名前:NAME IS NULL [2007/11/07(水) 17:24:03 ID:ou6vFdyT] >>578 >>579 すみません、575です 仕様上どうしても255以上、300程度のフィールドを設けねばならず、 複数フィールドの内容を1フィールドにまとめずに処理をしたいのです
581 名前:NAME IS NULL [2007/11/07(水) 18:11:24 ID:Wr3F4zOP] 200って1レコードに設定できる最大バイト数がきまってるってほんとか?
582 名前:NAME IS NULL mailto:sage [2007/11/07(水) 21:18:19 ID:???] SSISってなんだよ? 普通にC#でDBアプリケーション作っちゃいけないのかよ?
583 名前:まりも [2007/11/07(水) 22:55:38 ID:NVJ4rdlb] SQLServer初心者です。 DB内のハングル文字をウェブで表示したいのですが、可能可能でしょうか? まずは、お聞きしたくてカキコしました。
584 名前:まりも [2007/11/07(水) 23:26:25 ID:NVJ4rdlb] SQLServer初心者です。 クエリで取得したDB内のハングル文字をウェブで表示したいのですが、化けてしまいます。 ハングル文字でちゃんと表示する事は、技術的に可能なのでしょうか? サーバーOS:windows 2000 server(言語defaluet日本語/韓国語ほか追加済)SQLServer 2000 IIS5/Coldfusion5 表示側はUTF-8で、直書きしたハングル文字は正常に表示されていて、DBで取得した文字に関してのみ化けています。 スレ違いの気もするのですが、まずはDB側ハングル文字扱いの際の設定が正しいかどうか確認したくてカキコしました。 どうかよろしくお願いいたします。
585 名前:まりも [2007/11/07(水) 23:31:53 ID:NVJ4rdlb] フィールドの設定は、 nverchr 照合順序をKoreanWansung_CI_AS にしてみましたが、だめでした。何が足りないのでしょうT。T
586 名前:NAME IS NULL mailto:sage [2007/11/08(木) 00:02:03 ID:???] たぶん、ハングルについて答えられる人は2chには居ないだろうな。。
587 名前:NAME IS NULL mailto:sage [2007/11/08(木) 00:56:01 ID:???] DBにハングルでちゃんと記録されているなら アプリかWebサーバの問題。 同じようなことをMysql&Apacheで経験しているが そんときはKoreanのクソサーバが原因だった。
588 名前:まりも [2007/11/08(木) 00:56:21 ID:fOua6aLw] ガーン!2chならいらっしゃるかと・・
589 名前:まりも [2007/11/08(木) 01:00:38 ID:fOua6aLw] >587様 ありがとうございまs。 DBにハングルが記録されているかどうかの確認ですが、 例えば、エンタープライズマネージャーでデータを表示し、 フィールド内の文字列をコピペして、 テキストでハングル表示されれば、 ちゃんと記録されていると判断してますが、それはOKでしょうか? それだけでも、切り分けられれば前に進みます。
590 名前:まりも [2007/11/08(木) 01:13:10 ID:fOua6aLw] SQLServer自体にハングルに対応するための言語パックみたいなものが 必要なのかと思っていたのですが、そうでなければ、クエリ取得から、 出力時のエンコードの問題になるのかと。。 DB側は関係ないんですかね。。何の文字が入ってても。。
591 名前:まりも [2007/11/08(木) 01:15:20 ID:fOua6aLw] はぁ。。まりも、まりもっこりしちゃいそうです。。
592 名前:NAME IS NULL mailto:sage [2007/11/08(木) 10:49:04 ID:???] >>580 複数フィールドをまとめるとか言っている時点で失礼だがDBに対して あまり知識がないと思われ・・・試しにその仕様というのを簡単にここに書いてみれば 幸せになれるかも。 あくまで300フィールドで突き進むというのなら止めはしないが・・・ ちゃんと正規化してその数値なら私の知らない異次元の方なので ごめんなさいです。
593 名前:NAME IS NULL mailto:sage [2007/11/08(木) 11:56:28 ID:???] とりあえずここは邦人スレの方向でお願いしますニダ
594 名前:NAME IS NULL mailto:sage [2007/11/08(木) 14:05:32 ID:???] >>575 こういう質問は素直にMSに投げた方が良いと思われ 仕様の限界を超えた場合の挙動のテストなんてユーザがやるか?普通。
595 名前:NAME IS NULL mailto:sage [2007/11/08(木) 17:52:35 ID:???] >>575 試しにSQLServerでテーブル作ってみた create table foo( fld001 varchar(50) primary key, fld002 varchar(50), ...以下 fld300まで続く で、作成時に 警告: テーブル 'foo' が作成されましたが、最大行サイズ (15658) が行ごとの最大バイト数 (8060) を超えています。 このテーブルの行の INSERT または UPDATE は、結果の行の長さが 8060 バイトを超える場合は失敗します。 なんてのが出た。 次にACCESS2003でODBC接続でリンクした場合、fld255までしか見えない。 次にADPファイルで接続した場合、fld300まで見えた。 適当にデータを入れたり(全フィールドには入れなかった)したけど特にメッセージは出なかった。 面倒なのでこれで終わり。
596 名前:NAME IS NULL [2007/11/09(金) 11:45:15 ID:SU8Cv9DR] declare @cursor int; exec sp_cursoropen @cursor=@cursor output, @stmt=N'exec sp_tables'; これを実行すると、exec sp_cursoropen の実行時に 「キーワード 'declare' 付近に不適切な構文があります。」 といわれてしまうんですが、 sp_cursoropenの@stmtの中にexecは使えないのでしょうか?
597 名前:NAME IS NULL mailto:sage [2007/11/11(日) 23:20:18 ID:???] cursorが予約語だから。
598 名前:OYUnJxJmSZZQEzCKM mailto:edoesj@qcnafa.com [2007/11/12(月) 09:52:51 ID:???] n91BW5 <a href="ognmaskkkhqu.com/">ognmaskkkhqu</a>, [url=gaahjwealbyu.com/]gaahjwealbyu[/url], [link=rawghapkgbyf.com/]rawghapkgbyf[/link], iwhsckinjjoo.com/
599 名前:gvnVQkmoAsluF mailto:dwlyqj@vuyuho.com [2007/11/12(月) 11:29:33 ID:???] UtH63y <a href="yibmputambbu.com/">yibmputambbu</a>, [url=cefygaeykdxg.com/]cefygaeykdxg[/url], [link=uvsxlmglxneg.com/]uvsxlmglxneg[/link], pprnrtqhdjkg.com/
600 名前:NAME IS NULL [2007/11/12(月) 23:59:31 ID:GUgahVXu] 'とか"とか%とかは ' はSQL文のシングルコートと競合する可能性があるので使わないか ''(シングルコート2つ)で記述する " はSQL文やプログラム内のものと競合するので使わない % はワールドカードで使うので使わない という認識をしてますが間違ってますか? 上記以外にもSQL文につかうとまずい文字ってありますか?
601 名前:NAME IS NULL [2007/11/13(火) 00:13:27 ID:xXvnlMUm] SQLServer2000で稼働させていたストアドプロシージャを新しいマシン上でSQLServer2005に移行して動かしたところ、 マシンのスペックはCPU、メモリともに大幅に増強されているにも関わらず、パフォーマンスが落ちてしまいました。 どんな原因が考えられるでしょうか? 統計情報は更新しています。
602 名前:NAME IS NULL mailto:sage [2007/11/13(火) 00:20:47 ID:???] >>601 そこでエスパー伊藤さんの出番ですよ。
603 名前:QLEuuESiSoFmQbem mailto:mnpwkv@vgpskp.com [2007/11/13(火) 09:43:03 ID:???] LboqPZ <a href="cdvaulivohjq.com/">cdvaulivohjq</a>, [url=hjxlqwjuecuj.com/]hjxlqwjuecuj[/url], [link=ktpitziugdui.com/]ktpitziugdui[/link], kqugtelnbwjk.com/
604 名前:NAME IS NULL [2007/11/13(火) 11:48:02 ID:ix6NkP0r] トランザクション分離レベルについて質問です。 トランザクション分離レベルを常にREPEATABLE READ にしておきたいのですが、そのような設定は無理なのでしょうか? いくつか解説を見ると、 トランザクションの最初に、 SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; として、実行することと書いているのですが、 これだと、毎回書かないといけないので、めんどくさいのですが。
605 名前:NAME IS NULL mailto:sage [2007/11/13(火) 12:26:07 ID:???] >>604 MSSQLではSET TRANSACTION ISOLATION LEVELは 接続に対する命令なので接続後に1回書けばいい。 BEGIN TRANSACTION毎に書く必要があるのはPostgreSQLがそう。
606 名前:NAME IS NULL mailto:sage [2007/11/13(火) 23:43:33 ID:???] >>601 情報を出したくないなら、この手の手順でボトルネックを切り分けて ttp://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx SQL Server 2000との状況の差とか絞り込んでみるくらいかな
607 名前:FCRVPWWCTaiEXm mailto:nwetya@phohre.com [2007/11/14(水) 03:30:00 ID:???] FUphgd <a href="axtymoylwxul.com/">axtymoylwxul</a>, [url=yomtvxeqvjpo.com/]yomtvxeqvjpo[/url], [link=dmfdrlwbhwsf.com/]dmfdrlwbhwsf[/link], tjqoemklpenf.com/
608 名前:NAME IS NULL mailto:sage [2007/11/14(水) 23:55:10 ID:???] たとえば項目が2000個ある場合など、どのようにテーブル設計すればよろしいでしょうか? TEST-0001:123 TEST-0002:789 : : TEST-2000:999
609 名前:wWdAsGeFEgavFdGzdkN mailto:email@gmail.com [2007/11/15(木) 17:59:27 ID:???] Hi! Nice site!
610 名前:Vista [2007/11/16(金) 17:51:30 ID:klWd0S4A] Vista+MSDE2000について質問です。 Vistaにサポート外のMSDE2000をインストールしたらうまく動作しました。 ところが、 XPからネットワーク接続できますが、 Vistaからは接続できません。 ファイアウォールやUACを無効化してやってみましたが、 現象変わらずです。 子機Vistaから親機VistaのMSDE2000に接続する方法を どなたかしりませんか?
611 名前:NAME IS NULL [2007/11/16(金) 19:44:53 ID:vV6+8oUu] うまく動作してへんやん
612 名前:NAME IS NULL [2007/11/16(金) 20:16:47 ID:BR8EDWie] サポート外やん
613 名前:NAME IS NULL [2007/11/16(金) 22:26:17 ID:XD+hACtW] TSVファイルのインポート方法で質問です。 現在、TSVファイルをインポートするプログラムを作成中なのですが BCPかBULK INSERTを使用しようと思っています。 問題はこのTSVファイルの末尾5行が サマリーレコードになっており、カラム数が他の行とあっていません。 アプリで末尾5行にTABを付加してインポートした後に削除してもいいのですが このファイルには数百万レコードのデータが格納されており性能劣化を懸念しています。 末尾5行は固定なので高速に削除するか編集する方法はありますか? もしくは、BCPに末尾5行を読み込まないか不足しているカラムを 強引にインポートする方法はありますか?
614 名前:NAME IS NULL mailto:sage [2007/11/19(月) 09:50:11 ID:???] SQL Server 2000をSQL Server認証モードで使用しています。 saのパスワードをいつ変更したのか、最終変更日時を調べる 方法はあるのでしょうか? もしパスワードハッシュが見られるのでしたら、その方法でも 結構です。 よろしくお願いします。
615 名前:NAME IS NULL mailto:sage [2007/11/19(月) 21:08:26 ID:???] SQLserver2000を勉強中ですが 自動コミット トランザクション モード (SQL Server 既定) 明示的なトランザクション モード 暗黙のトランザクション モード 上記のどのトランザクションモードか調べるにはどうしたらいいでしょうか?
616 名前:NAME IS NULL mailto:sage [2007/11/20(火) 10:26:07 ID:???] SQLServer2005で Oracleのシーケンステーブルのような テーブルを作成したいと考えていますが SQLServer2005で実装するには、どのようにすれば良いでしょうか? 自分で調べてみたのですが、オートナンバー型はあるようですが Oracleのシーケンスのように、使えるものが見つかりませんでした。
617 名前:NAME IS NULL mailto:sage [2007/11/20(火) 20:31:29 ID:???] DBCC CHECKIDENTは?
618 名前:tYvJaTsHIKe mailto:jaysyv@qreior.com [2007/11/20(火) 21:34:02 ID:???] uYHUqI <a href="zmnudthsdmgp.com/">zmnudthsdmgp</a>, [url=tsxpirngvqdy.com/]tsxpirngvqdy[/url], [link=stdighdaghwq.com/]stdighdaghwq[/link], ofozxkryhdxf.com/
619 名前:jUxTZcnlcjZZ mailto:poqimp@moarrf.com [2007/11/20(火) 21:38:23 ID:???] oqgQ6A <a href="oduvhmrkjdse.com/">oduvhmrkjdse</a>, [url=maumxwoahabq.com/]maumxwoahabq[/url], [link=ztxjxhqdrabs.com/]ztxjxhqdrabs[/link], pillyztikfvq.com/
620 名前:NQxSatNqZIaCVDmI mailto:fahdqh@zgdhie.com [2007/11/20(火) 21:56:59 ID:???] PjGPCa <a href="ooqjykjspjbo.com/">ooqjykjspjbo</a>, [url=aiepdwnabzmx.com/]aiepdwnabzmx[/url], [link=aremhwricrfc.com/]aremhwricrfc[/link], sdqznccfnyos.com/
621 名前:giQpjLbFZgCdb mailto:ohsyra@xjwqcc.com [2007/11/20(火) 21:58:50 ID:???] WHfbGU <a href="nctgynkrivuq.com/">nctgynkrivuq</a>, [url=soltoilgbcfy.com/]soltoilgbcfy[/url], [link=awmlwkpenvhm.com/]awmlwkpenvhm[/link], xgmdqgmqfefp.com/
622 名前:NAME IS NULL mailto:sage [2007/11/21(水) 01:40:58 ID:???] >>616 主処理のトランザクションを開始する前に独立したトランザクションで必要な番号を採っておく。 または主処理とは独立したセッションを開きそこで番号を取得する。 主処理のトランザクションに採番処理を含むとデットロックやパフォーマンスの低下を招く。
623 名前:NAME IS NULL mailto:sage [2007/11/21(水) 09:53:17 ID:???] >>617 >>622 ありがとうございます。 DBCC CHECKIDENTでも代用できる部分があったのですが どうしても、番号だけ取得したい場合に 無駄なデータが増えてしまってどうも無駄な気がしたので聞いてみました。。 現在は、裁判用テーブルを作成して テーブルロックをかける→値取得→アップデート という流れで実現可能か、確かめてみている所です。
624 名前:NAME IS NULL mailto:sage [2007/11/21(水) 10:03:09 ID:???] >>623 裁判 × 採番 ○
625 名前:QCWLsAdoJxLcfdnxi mailto:haimba@haimba.com [2007/11/23(金) 00:23:33 ID:???] haimba.cn windows mp3 downloads
626 名前:JIfZlDLVMthqOUTV mailto:ImADisco@ImADisco.org [2007/11/23(金) 21:15:16 ID:???] kgnsye.cn/imax-california.html Imax california kgnsye.cn/california-dept-of-corporation-htm.html California dept of corporation htm kgnsye.cn/single-family-homes-carlsbad-california.html Single family homes carlsbad california kgnsye.cn/archangel-tattoo-design.html Archangel tattoo design kgnsye.cn/blue-book-pricings-for-atv.html Blue book pricings for atv
627 名前:ZFQqRMDNHmN mailto:ImADisco@ImADisco.org [2007/11/23(金) 21:15:37 ID:???] kgnsye.cn/imax-california.html Imax california kgnsye.cn/california-dept-of-corporation-htm.html California dept of corporation htm kgnsye.cn/single-family-homes-carlsbad-california.html Single family homes carlsbad california kgnsye.cn/archangel-tattoo-design.html Archangel tattoo design kgnsye.cn/blue-book-pricings-for-atv.html Blue book pricings for atv
628 名前:XgtcfwMcSu mailto:govnokia@govnokia.net [2007/11/24(土) 00:50:00 ID:???] ktmyve.cn/escort-monique-new-york.html Escort monique new york ktmyve.cn/laser-vaginal-rejuvenation-new-york.html Laser vaginal rejuvenation new york ktmyve.cn/fetish-restaurant-new-york.html Fetish restaurant new york ktmyve.cn/pda-cube-x-serial-rubik-pocket-pc.html Pda cube x serial rubik pocket pc ktmyve.cn/ear-piece-for-blackjack-pda.html Ear piece for blackjack pda
629 名前:mYOzKnXrxShgAzzKpL mailto:nightmp3@bdzwbn.cn [2007/11/24(土) 17:40:58 ID:???] bdzwbn.cn/night-mp3 night mp3
630 名前:KRpmfGVKkrchrbPE mailto:dialog@golaid.info [2007/11/24(土) 20:28:23 ID:???] bfsnbw.cn/mp31 renegade master
631 名前:RpNeGYzbR mailto:Callme@meecal.com [2007/11/24(土) 21:53:22 ID:???] bfsnbw.cn/mp32 call me
632 名前:GzVandRqdFO mailto:GoingOut@GoingOut.com [2007/11/25(日) 06:07:24 ID:???] bfsnbw.cn/mp38 white tail deer rutting season
633 名前:NAME IS NULL mailto:sage [2007/11/26(月) 06:54:19 ID:???] test
634 名前:DfNimCJVHDJVoRwhi mailto:prvwfh@ddwckc.com [2007/11/27(火) 18:49:59 ID:???] geiKo5 <a href="mjjhciipgweo.com/">mjjhciipgweo</a>, [url=dejayrtmdeqd.com/]dejayrtmdeqd[/url], [link=nerirslwicpb.com/]nerirslwicpb[/link], ftaqmvkzjqfo.com/
635 名前:NAME IS NULL mailto:sage [2007/11/28(水) 11:14:13 ID:???] nanikore?
636 名前:NAME IS NULL mailto:sage [2007/11/30(金) 01:39:58 ID:???] ストアドプロシージャで以下のような感じで、hoge列の値を戻り値としたい場合は どうのように記述するのでしょうか? 返されるレコードは必ず1件のみです。 SELECT hoge FROM Foo WHERE hoge = 1
637 名前:NAME IS NULL mailto:sage [2007/11/30(金) 12:21:24 ID:???] >>636 ストアドプロシージャの構文覚えてきなさい。 まず、変数の宣言とDISTINCTについて勉強しましょう。
638 名前:NAME IS NULL mailto:sage [2007/11/30(金) 14:43:55 ID:???] ストアドプロシジャ化する必要があるのかな? あと、値を返すだけだったらストアドプロシジャよりはストアドファンクションの方が楽だったりするし。 (ストアドプロシジャもOUTPUTオプションで戻り値を返す引数として宣言できるけどね) ちなみに、今回の要件だったらストアドプロシジャ化しなくても、以下の構文で取得できる。 (hogeはINTだと仮定) DECLARE @hoge INT SELECT @hoge = hoge FROM Foo WHERE hoge = 1
639 名前:NAME IS NULL mailto:sage [2007/11/30(金) 18:29:58 ID:???] DECLARE @hoge INT @hoge = 1 でいいと思う
640 名前:NAME IS NULL [2007/11/30(金) 20:14:18 ID:dJBxApwF] ACCESSからSQL Serverのテーブルをリンクしてます。 カレントDBのADODBコネクションに対してひとつのトランザクションで 多数のリンクテーブルを結合して結構複雑なSELECT文と UPDATE文やINSERT文やDELETE文を混在させていっぱい実行したとき、デッドロックっぽいものが起きます。 (トランザクションの途中のUPDATE文でACCESSで「ODBC接続に失敗しました」とエラーが出るんだけど、 それまでに何回かはおなじUPDATE文が成功しています) んで、SQL Server Profilerで様子を見ると、 ACCESSではひとつのトランザクションでおこなっているはずなのに複数のSPIDを使ってるではないですか! てことは自分で自分に対してデッドロックしてるのでは?と思うのですが、当たってるでしょうか。 んで、回避方法はあるでしょか・・・結構複雑なSELECT文をビューや関数にするといいのかなぁ。。 ファイルがインプットだからストアドプロシージャはちときついですのん。
641 名前:NAME IS NULL mailto:sage [2007/11/30(金) 20:57:11 ID:???] ____ / \ / ─ ─ \ / (●) (●) \ | (__人__) | それはない \ ` ⌒´ ,/ r、 r、/ ヘ ヽヾ 三 |:l1 ヽ \>ヽ/ |` } | | ヘ lノ `'ソ | | /´ / |. | \. ィ | | | | |
642 名前:NAME IS NULL mailto:sage [2007/12/01(土) 22:44:48 ID:???] Developer Edition についてですけど、 ttp://www.microsoft.com/japan/sql/editions/developer/default.mspx Developer Edition は、実運用環境での稼動は出来ませんが、実運用で利用する Enterprise Edition 環境へのシームレスな移行が可能です。 これって個人的に自宅で使う分にはOKって事?
643 名前:NAME IS NULL mailto:sage [2007/12/01(土) 22:46:09 ID:???] 自宅で使うならトライアル入れておけばいいだろ。
644 名前:NAME IS NULL mailto:sage [2007/12/01(土) 22:55:30 ID:???] いや、勿論そうしますけど w 、Developoer Edition の条件はそういう風に捉えて良いのかなと思ったわけで。
645 名前:NAME IS NULL mailto:sage [2007/12/01(土) 23:01:47 ID:???] 自宅とか関係なく、開発用に使う分ならいい。
646 名前:NAME IS NULL mailto:sage [2007/12/01(土) 23:07:41 ID:???] 了解です m(__)m
647 名前:NAME IS NULL mailto:sage [2007/12/02(日) 19:58:43 ID:???] 実行プランでindex seekとかhash matchとか出ているのですが hash matchってどういう意味っすか?
648 名前:NAME IS NULL mailto:sage [2007/12/02(日) 23:13:32 ID:???] ハッシュ結合
649 名前:初心者 [2007/12/02(日) 23:17:41 ID:r6XgxIY/] はじめまして。初心者です。 突然ですが質問があります。 SQL SERVER 2005 で、自動的(1時間ごとに)にバックアップをとり、48時 間分のファイルを保存しておきたい時はどのようにしたらいいのですか。 みなさまのお力をお貸しください。(__)
650 名前:NAME IS NULL mailto:sage [2007/12/02(日) 23:27:54 ID:???] まず、ログファイルの管理方法をどうするのか。 バックアップファイルのサイズがどの程度なのか。 スケジューラを使うのか等を決めた方がいいよ。
651 名前:初心者 [2007/12/02(日) 23:34:06 ID:r6XgxIY/] name is null さん 返答ありがとうございます。 基本的にフルバックアップです。 サイズはは100メガくらいです。 スケジューラは使います。 ログもそのまま保存します。
652 名前:NAME IS NULL mailto:sage [2007/12/03(月) 10:43:12 ID:???] name is null さん name is null さん name is null さん
653 名前:NAME IS NULL mailto:sage [2007/12/03(月) 14:21:13 ID:???] >>651 そこまで決まってて、何が聞きたいんだ? 俺、エスパーじゃないし、、、
654 名前:初心者 [2007/12/03(月) 15:02:44 ID:ukVIXvlY] 超初心者で、上司に頼まれて徹夜でしらべてたっす。 定期バックアップは分かりました。 1時間ごとのバックアップを取り48時間分のデータのみ保存しておきたいときは 何をどのようにすればいいのですか? その48時間以降のものは削除する方法といいますか。 よろしくお願いします。
655 名前:NAME IS NULL mailto:sage [2007/12/03(月) 15:58:25 ID:???] 間隔48hのスケジュールでバックアップデータを48種類作成し、上書きすればいいんじゃね?
656 名前:初心者 [2007/12/03(月) 16:31:07 ID:ukVIXvlY] >>655 ありがとうございます。やってみます。
657 名前:NAME IS NULL [2007/12/03(月) 22:52:15 ID:G/RsR7SD] 単にテーブル名に変数を使いたいのですが無理なのでしょうか? SELECT * FROM @TABLE テーブル変数ってのは調べましたが目的が違うようですし…。
658 名前:NAME IS NULL [2007/12/03(月) 23:48:17 ID:GpJGGX+L] OracleDBに対してクエリを投げるときに変数は無理?
659 名前:NAME IS NULL mailto:sage [2007/12/04(火) 00:51:51 ID:???] >>657 EXECUTEかsp_executesqlを使うといいかも。 ※ただしSQLインジェクションには注意。 SQLインジェクション対策のため、sp_executesqlを推奨。 (例) EXECUTE('SELECT * FROM ' + @TABLE)
660 名前:NAME IS NULL mailto:sage [2007/12/04(火) 00:54:15 ID:???] >>658 > OracleDBに対してクエリを投げるときに変数は無理? Oracleとはリンクサーバーとして接続? 「変数」ってどんな事をやりたいのかが判らないけど、 問題なく使えると思うけど。
661 名前:NAME IS NULL [2007/12/04(火) 09:25:14 ID:2qzlgR1W] 658です。SQL Server 2005使ってます。 OLEデータソースのアクセスモードをSQLコマンドにしてクエリを直接入力する時に変数使いたいんですけど、 OLEDB接続マネージャがOracleを指していると、変数で?が使用出来ないんですよね。 更に、必ず、OKボタンで警告でるんですよ。。。 コンポーネントのロケールIDのコードページがなんちゃらかんちゃらって訳わからんとです。
662 名前:NAME IS NULL mailto:sage [2007/12/04(火) 12:40:55 ID:???] test
663 名前:657 mailto:sage [2007/12/04(火) 13:32:19 ID:???] >>659 thx!!やってみます。
664 名前:657 mailto:sage [2007/12/06(木) 13:27:41 ID:???] 教えて戴いたsp_executesql 試してみましたが、こちらもテーブル名で変数の利用はできませんでした・・・。 スマートじゃないけど諦めてIF文で分岐させて、そのままSQL記述することにしまつ
665 名前:NAME IS NULL mailto:sage [2007/12/06(木) 15:31:09 ID:???] >>664 なんか勘違いしていると思われ。SQL ステートメントを varchar 型で作って sp_executesql に渡すんだよ。 こんな感じ。 〜 DECLARE @SQL_STATEMENT as varchar(255) SET @SQL_STATEMENT = 'SELECT * FROM ' + @TABLE -- CAST が必要な場合は適宜 CAST する PRINT @SQL_STATEMENT -- これで SQL ステートメントを表示して、中身が正しいか確かめる EXECUTE sp_executesql(@SQL_STATEMENT) -- 実際に SQL ステートメントを実行する
666 名前:NAME IS NULL mailto:sage [2007/12/06(木) 19:11:38 ID:???] SQL Server 側のトリガで、接続元クライアントの情報(IPアドレス、コンピュータ名など) を取得するにはどうしたらよいでしょう? 無理でしょうか?
667 名前:NAME IS NULL mailto:sage [2007/12/06(木) 19:22:35 ID:???] >>666 SQL Server 2005以降ならSQL CLRでプロシジャを作ればできると思う。
668 名前:NAME IS NULL [2007/12/07(金) 01:43:39 ID:R8ptFJiN] ReportingServicesの質問もここでいいのかな? Reporting Services 2000を別サーバにあるReporting Services 2005に移行したいのですが、 なんかいい方法ないですか? Reporting Services 2005側はインストールしただけなので何でも出来ます。 なんにせよ情報が少なすぎて・・。
669 名前:NAME IS NULL [2007/12/07(金) 10:52:06 ID:W82n5Pzl] ADOスレで聞いていましたが、スレ違いのようなのでこちらに移動してきました。 以下転載+追記です。 何か対応方法をご存知の方がいれば、教えていただけたらと思います。 環境: Win2003ServerR2 SP2 英語版 最新パッチインストール済み SQL Server 2000 Standard SP3 現象: 以下の内容でDBを新規作成しました。 "CREATE DATABASE MyTestDB ON PRIMARY (NAME = MyTestDB_DAT ,FILENAME = 'D:\MyTestDB\MyTestDBData.mdf', SIZE = 1MB,FILEGROWTH = 10%, MAXSIZE = UNLIMITED) LOG ON (NAME = MyTestDB_LOG, FILENAME = 'D:\MyTestDB\MyTestDBLog.ldf',SIZE = 1MB, FILEGROWTH = 10%, MAXSIZE = UNLIMITED )" 次にEnterprise Managerを使って、作成したDBの完全バックアップ→差分バックアップを行いました。 この時点では完全・差分共にバックアップは正しく取れて、リストアも可能です。 この後ntbackupを使ってD:\以下にあるDBには関係の無いファイルをバックアップすると、 MyTestDBのリストアダイアログを表示したとき作った覚えのないバックアップセットが自動的に作られてしまい、DBが復旧できなくなります。 また、D:\MyTestDB1 D:\MyTestDB2 と複数DBを作って同じことを試すと両方のDBに影響が出ます その後調べたところ、ntbackupの実行でmsdbのバックアップ関連のテーブルに不要なレコードが追加されていることがわかり 不要レコードの削除で、見かけ上は不要なバックアップセットを消すことができました。 しかし、この状態では完全バックアップは問題なくリストアできますが、差分バックアップのリストアに失敗します。 差分バックアップをリストアした場合のエラーは以下のような内容でした。 Microsoft SQL-DMO (ODBC State: 42000) Cannot apply backup on device 'BAKファイルのフルパス' to database 'MyDB'. RESTORE DATABASE is terminating abnormally. ntbackupを実行せず、DBのバックアップのみ行った場合は特に問題なく動作しています。
670 名前:664 mailto:sage [2007/12/07(金) 14:44:21 ID:???] >>665 すみません。詳しく書いてなかったのですが、OPENXMLでWITH句?にテーブル名割り当てしてるので、 このテーブル名には変数使えないみたいです。
671 名前:NAME IS NULL mailto:sage [2007/12/07(金) 16:27:22 ID:???] >>669 なんか ntbackup + Volume Shadow copy Service を使ってデータベースと同じボリュームにあるファイルをバックアップすると、その次は完全バックアップを取ってからじゃないと差分バックアップがとれなくなるんだよね。 sql2k5 でも同じ問題がおきるけど直せないんだってさ。VSS をとめてから ntbackup するか(これで大丈夫かは覚えてない。試してくれ) ntbackup した後は完全バックアップをとってしのぐしかない。MSDE Writer とかもからんでるらしい。
672 名前:xXBZTqzjIZXWmTvpY mailto:email@gmail.com [2007/12/10(月) 04:38:37 ID:???] www.mdscj.org/portal_memberdata/portraits/mercenaries mercenaries , www.mdscj.org/portal_memberdata/portraits/callofduty4crack call of duty 4 crack , www.mdscj.org/portal_memberdata/portraits/Europauniversalis Europa universalis , www.mdscj.org/portal_memberdata/portraits/penumbra penumbra , www.mdscj.org/portal_memberdata/portraits/Europauniversalis Europa universalis , www.mdscj.org/portal_memberdata/portraits/callofduty4crack call of duty 4 crack , www.mdscj.org/portal_memberdata/portraits/Europauniversalis Europa universalis , www.mdscj.org/portal_memberdata/portraits/area51secrets area 51 secrets , www.mdscj.org/portal_memberdata/portraits/fearparseusmandate fear parseus mandate , www.mdscj.org/portal_memberdata/portraits/fieldops field ops ,
673 名前:NAME IS NULL mailto:sage [2007/12/11(火) 00:54:45 ID:???] 1つのテーブルで最大何レコードくらい扱ってる? 一億レコードとか無理?
674 名前:NAME IS NULL mailto:sage [2007/12/11(火) 03:00:11 ID:???] >>673 2000 Ent SP4と2005 Ent SP1で1億レコードの実績あるよ。 1レコードのサイズは忘れた。
675 名前:NAME IS NULL [2007/12/11(火) 17:41:47 ID:gi58fe7W] インストールについて質問です。 HDDが二つあるんですが、Cドライブは、あけておきたいので、 Dドライブだけにインストールしたいと考えているんですが、 詳細選択で、Dドライブだけ選択しても、Cドライブにインストールされてしまいます。 Dドライブだけにインストールする方法はありませんか?
676 名前:NAME IS NULL [2007/12/11(火) 23:25:05 ID:wms2Xoe4] @Return Valueの番号とエラー内容対応表みたいなのどこかにあります? 探しても見つからなくて、例えば一意制約違反なら-4が返るとか
677 名前:NAME IS NULL mailto:sage [2007/12/11(火) 23:39:56 ID:???] >>675 common files の呪縛からは逃れられない OSをDに突っ込むか、 あるいは容量だけが気になるなら、 名無しパーティションを作成した上で common files\mssql とかにマウントするとよろしい
678 名前:NAME IS NULL [2007/12/12(水) 14:23:56 ID:0a54ISX9] はじめまして、リンクサーバーについてお教え頂きたく書き込みました。 SQLServer2005のExpressを使っています。 データをAccessのmdbファイルのテーブルに書き出そうと、以下の方法を試しましたが どちらもInsertできませんでした。 SQLServerにはSQL認証のsaでログインしています。 1、リンクサーバーを設定し、以下のSQLを作成 INSERT INTO LINKMDB...Table1(コード, 項目, 登録日時) SELECT コード, 項目, 登録日時 FROM sTable 結果: [dbo].[StoredProcedure2] を実行中. リンク サーバー "LINKMDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" から、 メッセージ "更新可能なクエリであることが必要です。" が返されました。 リンク サーバー "LINKMDB" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" で テーブル "[LINKMDB]...[table1]" を INSERT INTO できませんでした。 該当する行はありません。 (0 行が返されました) @RETURN_VALUE = [dbo].[StoredProcedure2] の実行が完了しました。 2、リンクサーバーを解除し、OPENROWCOUNT を使ったSQLを実行、 セキュリティ構成で使用を許可 INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'','SELECT コード, 項目, 登録日時 FROM Table1') SELECT コード, 項目, 登録日時 FROM sTable 結果: [dbo].[StoredProcedure1] を実行中. リンク サーバー "(null)" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" から、 メッセージ "複数ステップの OLE DB の操作でエラーが発生しました。 各 OLE DB の状態の値を確認してください。作業は終了しませんでした。" が返されました。 リンク サーバー "(null)" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" から、 メッセージ "複数ステップの OLE DB の操作でエラーが発生しました。 各 OLE DB の状態の値を確認してください。作業は終了しませんでした。" が返されました。 リンク サーバー "(null)" の OLE DB プロバイダ "Microsoft.Jet.OLEDB.4.0" に対するクエリ "SELECT コード, 項目, 登録日時 FROM Table1" を実行できません。 UPDATE/DELETE/INSERT ステートメントで必要なインターフェイスをプロバイダがサポートできませんでした。 プロバイダが、他のプロパティまたは要件と競合が発生したことを示しています。 該当する行はありません。 (0 行が返されました) @RETURN_VALUE = [dbo].[StoredProcedure1] の実行が完了しました。 残すはADOで開いて・・・と考えていますが、ストアドでスパッとできればと思いまして。 よろしくお願いいたします。
679 名前:NAME IS NULL [2007/12/12(水) 16:27:40 ID:c6/wQ7we] 初心者質問すません。。 SELECT文内の項目値を再利用したいときどう指定したらいいのでしょうか。。 実際はもっと複雑な計算式なので、計算式を複数回書くのはちょっとと思ってます。 副問い合わせしたらいいんですが、再利用できたらいいなぁと。 (ORACLEだったらできたような・・・) --テスト用テーブル作成文(削除は手でしてください) create table TBL_A(COL_KEY int, COL_A1 int) create table TBL_B(COL_KEY int, COL_B1 int) --「列名 'TMP_A' が無効です。」エラー発生SELECT文 select TBL_A.COL_A1 * TBL_B.COL_B1 as TMP_A, case when TMP_A >= 0 then 'プラス' else ' ' end from TBL_A inner join TBL_B on TBL_A.COL_KEY = TBL_B.COL_KEY --TMP_Aの代わりに計算式をそのまま書いたら検索できるSELECT文 select TBL_A.COL_A1 * TBL_B.COL_B1 as TMP_A, case when (TBL_A.COL_A1 * TBL_B.COL_B1) >= 0 then 'プラス' else ' ' end from TBL_A inner join TBL_B on TBL_A.COL_KEY = TBL_B.COL_KEY すません、どなたか回答くださいませm(_ _)m
680 名前:NAME IS NULL mailto:sage [2007/12/12(水) 18:22:05 ID:???] SQL Server 2005 Enterpriseをインストールすると、 Visual Studioが一緒に入っているのがわかりました。 これって、Visual Studio 2005の製品版と同じものでしょうか? 知識がないので、教えていただければと思います。
681 名前:NAME IS NULL mailto:sage [2007/12/12(水) 20:32:39 ID:???] >>680 VSのIDE部分だけだ。
682 名前:NAME IS NULL [2007/12/12(水) 20:52:02 ID:IXuZw2+V] SSISでパッケージ作って、 MSDBにインポートしたけどパッケージ修正したい時はどうすればいいのですか あとまともなSSISの本とかないですか
683 名前:NAME IS NULL mailto:sage [2007/12/12(水) 22:43:33 ID:???] >>674 キー項目次第か?単純なINTのみなら実用になるか?
684 名前:NAME IS NULL [2007/12/12(水) 23:54:00 ID:y01m2iYd] すげー1億レコードなんて耐えられるんだ・・ 素人に毛が生えた程度の俺なんて、次のシステム1000万件と聞いて不安がってるんだけど 全然大丈夫なんですね
685 名前:NAME IS NULL mailto:sage [2007/12/13(木) 19:03:59 ID:???] 初歩的質問になりますが、どうぞよろしくお願いします。 Microsoft SQL Server Management Studio を使って SQL Server 2005 Express Edition のデータベースに接続し、そこでデータベース名を変更したのですが、 Data ディレクトリに入っている実際のデータベースファイル名(*.mdf および *_log.ldf)には変化がありませんでした。これらを新しい名前に変更して SQL Server 2005 Express Edition で認識させるにはどうすれば良いでしょうか?
686 名前:NAME IS NULL mailto:sage [2007/12/13(木) 19:06:29 ID:???] >>679 根本的な解決じゃないけど、ストアドファンクションを使ってみては? 例) CREATE FUNCTION foo(@COL_A1 AS INT, @COL_B1 AS INT) RETURNS nvarchar(3) AS BEGIN IF SIGN(@COL_A1 * @COL_B1) >= 0 BEGIN RETURN N'プラス' END RETURN N'' END 使い方) select TBL_A.COL_A1 * TBL_B.COL_B1 as TMP_A, .dbo.foo(TBL_A.COL_A1, TBL_B.COL_B1) from TBL_A inner join TBL_B on TBL_A.COL_KEY = TBL_B.COL_KEY
687 名前:NAME IS NULL mailto:sage [2007/12/13(木) 19:07:49 ID:???] >>685 デタッチ→ファイル名変更→アタッチでどう?
688 名前:NAME IS NULL mailto:sage [2007/12/13(木) 23:39:53 ID:???] >>684 1桁違う程度?
689 名前:NAME IS NULL mailto:sage [2007/12/18(火) 16:51:43 ID:???] スレ違いでごめんなさい・・・ データグリッドで1レコード複数行表示が可能なおすすめのフリーソフトってありませんか?
690 名前:NAME IS NULL [2007/12/19(水) 09:58:01 ID:oHeoFdmn] >>686 遅レスすまそ、レスありがd。 ファンクションしか手がないっすか、計算を2回するっちゅーことになるのですよね。 副問い合わせとファンクション使用どっちがパフォーマンスいいかなぁ。。
691 名前:NAME IS NULL [2007/12/20(木) 04:00:54 ID:0sj1sf8I] すみません、教えてください。 普段BAMP(FreeBSD,Apache,MySQL,PHP)環境でWEBの仕事をしているものです。 今回はお客様の要望でWin Server 2003 Enterprise, IIS, SQL Server 2005 Enterprise, PHP 環境での開発をしなくてはならなくなりました。 ただWin Server,SQL Serverは様々なエディションがあり、 どれを購入してよいかわかりません。 お客様と同じものを用意するのが普通でしょうが、 Webアプリ開発でのテスト用にしか利用しないため、 最安価にしたいのです。 Win Server 2003は Standard 5CAL 12万くらいのものにしようと思います。 SQL Server 2005については、Developerという5000円くらいの非常に 安価なものがあるのですが、これは開発、テスト用に問題ないものでしょうか? よろしくお願いします。
692 名前:NAME IS NULL [2007/12/20(木) 04:28:40 ID:0sj1sf8I] www.microsoft.com/japan/sql/prodinfo/features/compare-features.mspx ここみたら、Developer Editionはライセンス以外はEnterprise Editionと同じとありました。 Developerでよさそうです。 失礼しました。
693 名前:NAME IS NULL mailto:sage [2007/12/20(木) 08:13:12 ID:???] >692 OSもMSDNライセンスのなら10万程度のがある。 ほんのちょっぴり安い。
694 名前:NAME IS NULL mailto:sage [2007/12/20(木) 10:52:04 ID:???] >>692 Visual Studio with MSDN Subscriptionなら開発環境(Visual Studio)から OS、SQL ServerのDeveloper Editionまで付いてくるから、開発/評価なら これ一本でOKかも。
695 名前:NAME IS NULL [2007/12/20(木) 11:23:41 ID:Ldxr3WPw] 2005 JDBC Driver 1.1 を付属のサンプルソースで動かしてみたのですが 接続エラーになります。ほんとにこのドライバ動くの? と疑問を感じてるのですが、だれかJDBCを使っている人いますか?
696 名前:NAME IS NULL [2007/12/20(木) 11:50:09 ID:Ldxr3WPw] 早い自己レスですが、試行錯誤してるうちに ポート番号を指定しないようにしたら接続できることが判りました。 サーバインストール時にポート番号はデフォルトなので1433で 指定していましたが、もしやとサーバを確認したら別の番号になってました。 失礼しました。
697 名前:NAME IS NULL mailto:sage [2007/12/20(木) 13:09:24 ID:???] ていうかIISとPHPの組み合わせは・・・ 趣味とか社内だけのシステムならまあいいかもしれないけども。
698 名前:NAME IS NULL mailto:sage [2007/12/20(木) 16:36:55 ID:???] サーバーOS:windows 2000 server(言語defaluet日本語) SQLServer 2000(SPなし) でエンタープライズマネージャーからデータベース選択して「削除」を実行すると特定のデータベース だけダンマリになってしまい削除できません。同じような経験をした人はいますか?他のデータベース は削除できたんですが。。。すみませんが知ってる方御願いします。m(_ _)m
699 名前:NAME IS NULL mailto:sage [2007/12/20(木) 18:49:54 ID:???] >>698 コマンドラインからやってみそ
700 名前:NAME IS NULL mailto:sage [2007/12/20(木) 23:40:22 ID:???] drop database
701 名前:NAME IS NULL mailto:sage [2007/12/27(木) 11:03:39 ID:???] 2つのDBにそれぞれコネクトし、それぞれの抱えるテーブルに UPDATEやDELETEを同期を取って行いたいのですが マニュアルトランザクション管理だと同一のコミット、 ロールバックを保証できないですよね? 既存の機能でTransactionScopeのようなもので出来るようにも 思えず、何かアドバイスをいただければありがたいです。 要は2層コミットがやりたいわけなのですが・・・
702 名前:NAME IS NULL mailto:sage [2007/12/27(木) 11:06:41 ID:???] ロックかけてそれぞれ更新を確認できたらコミットすればいいんじゃないか?
703 名前:NAME IS NULL mailto:sage [2007/12/27(木) 11:21:41 ID:???] >>702 ありがとございます。 そういうコードを書いてみたんですが、 trxB.Commit(); trxA.Commit(); ↑これでもし、trxB.Commit()のあと(trxA.Commitの前)で 予期せぬ例外が発生したらと思うと夜も眠れなくなりました。 trxBの方はロールバックできないですよね…。
704 名前:NAME IS NULL mailto:sage [2007/12/27(木) 13:22:28 ID:???] TransactionScopeで普通にできるだろ?
705 名前:701,703 mailto:sage [2007/12/27(木) 14:46:13 ID:???] >>704 そうなんですか? サンプルに別々のDBにコネクション2本張る例が 見つからなかったもので… ならば頑張って試してみます。 スレ汚しすみません。
706 名前:701,703 mailto:sage [2007/12/27(木) 14:57:29 ID:???] >>704 方法としては>>703 のコードを TransactionScopeで囲んでおけばよいというイメージですよね? どうもありがとうございました。
707 名前:701,703 mailto:sage [2007/12/27(木) 15:52:49 ID:???] >>704 2個目のコネクションにOpenしにいった時点でプロセスが固まりましたw。 やっぱり出来ないみたいですね〜。 他をあたってみます。
708 名前:NAME IS NULL mailto:sage [2007/12/27(木) 23:11:13 ID:???] ロールバックまでは試してませんが・・・ aspplus.nobody.jp/200608/20060806.htm 今見ると何がポイントなのか、さっぱりわかんねぇ。
709 名前:NAME IS NULL mailto:sage [2007/12/28(金) 07:29:49 ID:???] いやだからできるって。 ttp://www.atmarkit.co.jp/fdb/rensai/sqls05try07/sqls05try07_2.html そもそもこの機能自体半分ぐらいはそういう用途で使うためのようなもんだし。
710 名前:701,703 mailto:sage [2007/12/28(金) 10:17:32 ID:???] >>708-709 フォローありがとうございます。 結論から言えば、DBは同じSQL-Server配下なので、 Aの更新後、ChangeDatabaseを使ってBに切り替えて更新…という方法で 試したところ目的は達成されました。
711 名前:NAME IS NULL [2007/12/28(金) 11:35:15 ID:vrIVVzNe] すみません。 固定長のデータを、テーブルにインポートしたいのですが、 「未知のバージョンのBCP…」でフォーマットエラーとなり、 データをインポートできません。 どうすればよろしいのでしょうか、 よろしくお願いします。 因みに、動作環境は、SQLServer2000です。
712 名前:NAME IS NULL mailto:sage [2007/12/28(金) 13:09:44 ID:???] >>711 フォーマットファイルの書式がおかしいと思われ。 1行目にバージョン情報、2行目に列数を書く必要があるけど、それが書かれていないと思う。 詳しくはBooks Onlineを参照。
713 名前:NAME IS NULL [2008/01/09(水) 16:25:21 ID:tcuNBDxU] SERVER1のSQLServer7から SERVER2のSQLServer2005にデータを移行準備をしているのですが、 SQLServer2005上でSQLServer7のデータをOPENROWSETを使って取得して INSERTするようにSQLを書いて実行したのですが、 SQL Server によって、コンポーネント 'Ad Hoc Distributed Queries' の STATEMENT 'OpenRowset/OpenDatasource' に対するアクセスがブロックされました。 サーバーのセキュリティ構成で、このモジュールが OFF に設定されているためです。 システム管理者は sp_configure を使用して、'Ad Hoc Distributed Queries' の使用を有効にできます。 'Ad Hoc Distributed Queries' を有効にする手順の詳細については、SQL Server Books Online の「セキュリティ構成 (Surface Area Configuration)」を参照してください。 というエラーが出てうまくいきません。 MSDNなどでAd Hoc Distributed Queries'を有効にする方法をググったのですが 行き詰ってしまいました。 「Ad Hoc Distributed Queries'を有効にする方法」とは具体的に どのようにやればよいのでしょうか?
714 名前:NAME IS NULL mailto:sage [2008/01/09(水) 17:15:50 ID:???] >>713 Editionによって違うかもしれないが、 Expressだとスタートメニューに「SQL Server 2005セキュリティ構成」というのがある。 その中の「機能のセキュリティ構成」で変更できる。
715 名前:NAME IS NULL mailto:sage [2008/01/10(木) 06:55:55 ID:???] 普通にオンラインバックアップして、リストアすれば済む話では?
716 名前:sage [2008/01/10(木) 12:59:49 ID:UxlvsMOZ] >>715 最初にやってみたのですが、旧バージョン互換としてリストアされて しまうようだったので、断念しました。 >>714 ありがとうございます。無事エラーが出なくなりました。
717 名前:NAME IS NULL mailto:sage [2008/01/10(木) 17:09:33 ID:???] 俺の会社はいまだに6.5。 今年は買い換えようと見積もり待ちだよん。
718 名前:NAME IS NULL mailto:sage [2008/01/12(土) 05:46:14 ID:???] 特に問題なければそのまま使い続けるのが基本。 新しくすれば、手間もコストもかかるし。
719 名前:NAME IS NULL mailto:sage [2008/01/14(月) 13:04:42 ID:???] 俺の会社もいまだに6.5。 主力は別の鯖で稼動してるし、 もう大した業務残ってる訳じゃないが いつ死ぬか分からんのだけが心配。 今年はSQLite3にリプレース予定だよん。
720 名前:NAME IS NULL mailto:sage [2008/01/14(月) 20:57:09 ID:???] >>719 SQLite3にリプレースてw ファイルDBで十分なのかよw
721 名前:sage [2008/01/15(火) 11:32:17 ID:GZ5unOPC] それだったら最初からmdbにしとけばいいのにといってみたりする
722 名前:NAME IS NULL mailto:sage [2008/01/15(火) 11:42:28 ID:???] >>718 だよね。 でももうハード的にだめそうw 容量も足りない(´Д⊂
723 名前:NAME IS NULL mailto:sage [2008/01/15(火) 17:26:39 ID:???] おれも2000Serverにファイルサーバ+Appサーバと一緒に7が入っているサーバ機があって 今度サーバ機をOSごと上げることになった。OSは2003で7は正式にサポートされてない ということでDBサーバも2005に乗せ代えを余儀なくされた。
724 名前:NAME IS NULL mailto:sage [2008/01/16(水) 10:36:47 ID:???] みんな貧乏会社なんだね・・・
725 名前:NAME IS NULL mailto:sage [2008/01/16(水) 22:04:20 ID:???] もしかして、SQL Server 代ケチってるとか思ってるの? バージョンアップに伴う人件費がもったいないからバー ジョンアップしないだけだよ。 人件費の安そうな >>724 みたいな会社は判断基準が違う んだろうけどな。(w
726 名前:NAME IS NULL mailto:sage [2008/01/16(水) 23:57:58 ID:???] >>722-723 つ Virtual Server
727 名前:NAME IS NULL mailto:sage [2008/01/17(木) 09:24:00 ID:???] SQLserverが高いよね・・・
728 名前:NAME IS NULL mailto:sage [2008/01/17(木) 17:02:53 ID:???] >>726 つ 論点ずれてる