• ベストアンサー

SQLServerのプライマリキーとインデックスについて

こんにちわ。 Oracleではあるカラムをプライマリキーとして設定すると, 自動的にそのカラムにインデックスが付与されたと思います。 ところで, SQLServerではあるカラムをプライマリキーとして設定すると, 自動的にそのカラムにインデックスが付与されるのでしょうか? あるいはプライマリキーとインデックスを個別に設定しなければ ならないのでしょうか? 教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

プライマリキーを設定することで、インデクスが自動的に作成され、既定値ではクラスタ化(近傍配置)も行われます。 (1)CREATE TABLE文の説明 http://msdn2.microsoft.com/ja-jp/library/ms174979.aspx (2)SQL Serverのインデクス・アーキテクチャ http://www.microsoft.com/japan/msdn/sqlserver/columns/sysbuild/sysbuild1.aspx

tatsurou
質問者

お礼

chukenkenkouさん 回答ありがとうございます。 プライマリキーを設定したら自動的にインデックスも作成されるんですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プライマリキーのみを変更して、複数行insertする方法

    こんにちは。 oracle(9i)のテーブルにinsertを行おうと思っているのですが、 困っているので質問させていただきます。 Aテーブルに5カラムあるとします。 カラム1はプライマリキーです。 例えば、1レコードが下記のようになっているとします。 カラム1 カラム2 カラム3 カラム4 カラム5 ---------------------------------------------- 001 あああ いいい ううう えええ プライマリキーに1を足して、他のカラム2から5までは同様の内容で insetをしたいと思っています。 つまり、下記のようなレコードになります。 002 あああ いいい ううう えええ 003 あああ いいい ううう えええ このようにプライマリキーのみを変更して200レコードくらいを insertしたいと思いますが、どのようにすればよいでしょうか。 できれば、PL/SQLかSQLのスクリプトで実行したいと思います。 ご存知の方、ご教授願います。 よろしくお願いいたします。

  • ORACLEで実現していることをSQLServerでもやりたい

    ORACLEにて、テーブルのカラムに対してのコメントを 以下の構文で設定しています。 COMMENT ON COLUMN hoge.sNendo IS '年度'; (hogeテーブルのsNendoカラムのコメントとして「年度」を指定) これと同様のことを実現するには、 SQLServer ではどのように記述すれば良いでしょうか。 宜しくお願いします。

  • プライマリキー名からテーブルを特定する方法

    プライマリキー名からテーブルを特定する方法 Oracle 10g でプライマリキー名からテーブルを特定することはできますか?システム管理者ではないのでSystem権限は持っていません。

  • PRIMARYKEYとINDEX

    ORACLEの表定義でPRIMARYKEYに設定した項目は 自動的にINDEXが作成されるのでしょうか? あるいは明示的にCREATE INDEX~しないと 作成されないのでしょうか? 初歩的な質問かもしれませんが, 宜しくお願いします。

  • OracleとSQLServerの共存について

    質問があります。 私のPCなのですが、Oracleの8.1.6をインストールして使用していました。 その後、SQLServerも使用する必要があり、SQLServer2000をインストールしました。 しかし、SQLServer2000をインストールした後、Oracleのサービス(OracleServiceSID)を起動しようとすると、"開始中"になってしまい、ORACLEが動きません。※"OracleOraHome81TNSListener"は起動します。また、SQLServerは起動します。 SQLserver2000が原因なのかと考えたのでSQLServerをアンインストールしたらやはりOracleは起動できました。 OracleとSQLServerは共存できないのでしょうか? ちなみにOSはWindows2000 pro です。

  • インデックスについて

    宜しくお願いします。 MySQLで検索速度を上げる為にカラム毎に設定するINDEXですが、 fulltextとindexの2種を使えば、全カラムにINDEXを付けられると思いますが、検索するか分からないカラムにもINDEXをつけた場合、何か不都合がおこりますか? 例えば、INDEXが多すぎると逆に検索が遅くなるなどです。 ちなみに、fulltextは日本語に対応していないのは理解しております。

    • ベストアンサー
    • MySQL
  • SqlServerのユーザー権限

    ずっとOracleを使用してきたのですが、このたびSqlServerの使用を検討することになりました。 Oracleでは、パスワードを知らなければDBの中身を参照することはできないですが、 SqlServerでは、Windows認証、SqlServer認証ともに、サーバー管理者であれば、 DBの管理ができるように思います。 開発時はいいのですが、リリース後は、サーバー管理者(客先のシステム部など)にも DBのデータは見せたくありません。 担当部署と開発担当者のみ参照できるよう設定したいのですが(パスワードを知る人間を限定する)、 SqlServerではそのような設定は可能なのでしょうか?

  • SQLServerでOracleシーケンスのような機構を実現するには

    いつもお世話になります。 SQLServerで自動採番される仕組みで何かいい方法がないかどうか悩んでいます。 主キーとなる項目に自動採番された値を、アプリケーションでセットした上で、DBに追加する仕組みを考えています。 OracleではSequenceのnextvalなどを使用すれば、番号を自動採番したものを取得することが可能ですが、 SQLServerでこのような仕組みを実現するために何か良い方法はありませんでしょうか? (追加先のDBはSQLServerではなく、自動採番等の機能も無いため、追加する前にアプリケーションでセットする必要がある。) 今までOracleしか使用したことが無く、SQLServerは初めてなので、ご教授頂きたく投稿しました。 よろしくお願いします。 SQLServerは2005を使用しています。

  • SQLserverのコミットについて

    SQLserverにもCOMMITという概念はあるのでしょうか? Management Studio というツールでDML文を実行すると自動コミットされます。 sqlcmdやストアドなどで実行した場合でも自動コミットされるのでしょうか? (やってみれば一発なのですが、本番環境しか無いんです) ORACLEでオブジェクトブラウザをよく使ってましたが、あちらはコミットは手動でしたので。

  • SQLServerでのデータディクショナリ

    OracleでテーブルのNot Null制約や、カラムのバイト数、PKかどうかなどが取れるように、 SQL Server でも取れますでしょうか? Googleにて「SQLServer、 データディクショナリ」のキーワードで検索をしてみましたが、 出てくるのはOracleばかりでした。 (SQL Serverで使う言葉がデータディクショナリという言葉ではないのかも?) SQL Server での取得方法、もしくはGoogle検索用のワードを知りたいです。

パソコンからスキャンできない
このQ&Aのポイント
  • コントロールセンターからスキャンできない状況について、質問をいただきました。
  • お使いの環境はWindows10で、無線LAN経由で接続されています。
  • 関連するソフトやアプリは特にないようです。
回答を見る