Help and Support
 

powered byLive Search

よく寄せられる質問 - SQL Server 2000 - サーバー

文書番号:260418
最終更新日:2006年9月4日
リビジョン:6.0
この記事は、以前は次の ID で公開されていました: JP260418
目次

概要

この資料では、Microsoft SQL Server 2000, Version 8.0 のサーバーに関して、最も頻繁に寄せられる質問をいくつか取り上げます。

先頭へ戻る

詳細

質問と答え

1. Q : DBCC INDEXDEFRAG と DBCC DBREINDEX との違いについて教えてください。

A : DBCC DBREINDEX や一般的なインデックスの構成とは異なり、DBCC INDEXDEFRAG はオンライン状態で動作します。したがって、実行中のクエリや更新をブロックする可能性がある、長時間のロック状態になることはありません。断片化の程度によっては、DBCC INDEXDEFRAG の方が DBCC DBREINDEX よりもかなり速く実行される場合があります。これは、断片化の程度が比較的小さいインデックスでは、新しいインデックスを構成する場合よりもずっと速く断片化を解消できるためです。また、DBREINDEX とは違って、DBCC INDEXDEFRAG では、DBCC INDEXDEFRAG 実行中も常時インデックスが利用可能であるという別の利点もあります。ただし、断片化の程度が大きい場合に DBCC INDEXDEFRAG を実行すると、DBCC DBREINDEX よりもはるかに長い時間がかかる可能性があります。これが、オンラインで実行できるメリットを上回ってなお問題になるかどうかは状況によります。また、INDEXDEFRAG ではページの順序の入れ替えが行われるため、ディスク上で 2 つのインデックスがインターリーブされている場合は、DBCC INDEXDEFRAG は期待した効果が得られません。ページのクラスタリングを改善するには、インデックスを再構成してください。
2. Q : テーブルを作成すると、次の 2714 エラー メッセージが表示されます。
警告: テーブル '%.*ls' が作成されましたが、最大行サイズ (%d) が行ごとの最大バイト数 (8060) を超えています。このテーブルの行の INSERT または UPDATE は、結果の行の長さが 8060 バイトを超える場合は失敗します。
テーブルの作成は成功し、データの挿入も問題なく行うことができます。このエラー メッセージの意味について教えてください。

A : このエラー メッセージは、テーブルの中に可変長の列 (nvarchar や varbinary など) があり、すべての列の最大長を合計すると 8060 バイトを超えることを示しています。各行のデータ長の合計が 8060 バイトを超えなければ、テーブルに行を挿入することができます。しかし、データが 8060 バイトを超えると、挿入に失敗して次のエラー メッセージが表示されます。
サーバー : メッセージ 511、レベル 16、状態 1、行 5
1 行のサイズ <rowlength> が許容最大値 8060 を超えているので作成できません。
ステートメントは終了されました。
3. Q : データベース内の 2 つのテーブルにスキーマ結合したテーブルを返すユーザー定義関数があります。マニュアルによれば、参照される側のテーブルは、スキーマ結合のオプションを取り除くまで変更できません。しかし、これらの参照されているテーブルに列を追加したり、そのテーブルから列を削除したりできます。これはエラーになるべきではないでしょうか。

A : その関数で参照されていない列を変更しているのであれば、答えは "いいえ" です。スキーマ結合に関与しているテーブルの列は、削除または変更することはできません。しかし、スキーマ結合と関係のない、それ以外の列であれば変更することができます。たとえば、c1、c2、c3、c4、c5 という 5 つの列が定義されている、スキーマ結合されたテーブルがあるとします。関数が c1 と c3 だけを参照している場合、変更できない列は c1 と c3 だけです。列 c2、c4、c5 の各列は、必要に応じて変更することができます。
4. Q : データベースをシングル ユーザー モードにして、dbo だけにアクセスを制限する方法を教えてください。

A : SQL Server 2000 では、データベースを dbo だけが使用できるシングル ユーザー モードにすることはできません。その代わり、ALTER DATABASE コマンドを使用することにより、次の代替オプションが利用できます。
? ALTER DATABASE database SET SINGLE_USER.

このコマンドを使用すると、データベースへのアクセスが、一度に 1 ユーザーのみに制限されます。
? ALTER DATABASE database SET RESTRICTED_USER.

このコマンドを使用すると、データベースへのアクセスが、db_owner、dbcreator または sysadmin ロールのメンバのみに制限されます。
? ALTER DATABASE database SET MULTI_USER.

このコマンドを使用すると、データベースへのアクセスが、通常の動作状態に戻ります。
5. Q : 1 台のコンピュータ上で、SQL Server 2000 のインスタンスを同時に複数実行することはできますか。

A : できます。詳細については、SQL Server Books Online の「SQL Server の複数インスタンス」を参照してください。
6. Q : DB-Library アプリケーションは、SQL Server 2000 でもサポートされますか。

A : はい。ただし、DB-Library は SQL Server 2000 用に拡張されていません。Microsoft SQL Server 7.0 の DB-Library に含まれるものと同じ機能のまま出荷されています。つまりこれは、DB-Library アプリケーションは SQL Server 2000 のデフォルトのインスタンスにのみ接続できるということです。名前付きインスタンスに接続することはできません。さらに、SQL Server 7.0 以降で利用可能になった新機能には一切対応していません。
7. Q : 暗号化を有効にするには、マルチプロトコルのネットワーク ライブラリを使用する必要がありますか。

A : いいえ。Microsoft SQL Server 2000 では、アプリケーション コンピュータとデータベース コンピュータ上の SQL Server インスタンスとの間で送信されるすべてのデータを SSL (Secure Sockets Layer) を使用して暗号化することができます。SSL の暗号化は、Super Socket Net-Library (Dbnetlib.dll および Ssnetlib.dll) の内部で行われ、SQL Server 2000 によってサポートされるコンピュータ間の相互接続プロトコルすべてに適用されます。詳細については、SQL Server Books Online の「Net-Library 暗号化」を参照してください。
8. Q : ユーザー定義関数の外では SQL ステートメントが正常に機能しますが、関数内部では正しく動作しません。

A : 副作用のあるステートメントが BEGIN-END ブロック内に含まれている可能性があります。こうしたステートメントは、ユーザー定義の関数内では使用できません。関数の副作用とは、関数の外側にスコープを持つリソースの状態への永続的な変更すべてを指します。変更を加えることができるのは、ローカルのカーソルや変数など、ローカル オブジェクトだけです。関数の中で実行できない操作の例としては、データベース テーブルに対する変更、関数にローカルでないカーソルに対する操作、電子メールの送信、カタログの変更を試みること、ユーザーに返す結果セットの生成などがあります。
9. Q : リンク サーバー クエリの名前付きインスタンスをサーバー名で修飾する方法を教えてください。

A : 4 つの部分から成るクエリでは、複数インスタンスのリンク サーバー名を角かっこで囲む必要があります。以下に例を示します。
SELECT * FROM [myServer\sql80].northwind.dbo.customers
						
この資料に記載されていない質問については、以下の Microsoft SQL Server ニュースグループを参照してください。
http://www.microsoft.com/japan/technet/community/newsgroups/dgbrowser/default.mspx?dg=microsoft.public.jp.sqlserver.server (http://www.microsoft.com/japan/technet/community/newsgroups/dgbrowser/default.mspx?dg=microsoft.public.jp.sqlserver.server)


この資料や他の Microsoft SQL Server の「サポート技術情報」 (Microsoft Knowledge Base) の資料に関するコメントは、SQLKB@Microsoft.com (mailto:sqlkb@microsoft.com) に寄せてください。

先頭へ戻る


この資料は以下の製品について記述したものです。
?Microsoft SQL Server 2000 Service Pack 3a

先頭へ戻る

キーワード:?
kbfaq kbinfo KB260418

先頭へ戻る

"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

サポート技術情報の翻訳

 

Related Support Centers

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.