• ベストアンサー

SQL Serverのntext型で一意インデックスが作れないのは?

SQL Serverのntext型で一意インデックスが作れないのはなぜでしょうか? nvarcharでは一意インデックスが作成できました。 よろしくお願いします。

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

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

正確な理由はMicrosoftの開発者ではないのでわかりませんが・・・。 nText型は8000バイトを超えるような大きなデータをターゲットにしているので、一意性の確認オーバーヘッドが大きいのが主因ではないでしょうか。 ギガ単位のデータも入れられる型ですから、比較するのも大変です。

ii_oniku
質問者

お礼

どうもありがとうございました。

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

関連するQ&A

  • SQL Serverでの文字列の格納

    SQL Serverで日本語の文字列を格納する型について質問させてください。 日本語文字列の格納にはnvarcharとntext型がありますが、全部 ntext型にしてもよいものでしょうか? 全部ntext型にした場合、何か都合の悪いことがあるのでしょうか?

  • インデックスの一意な値の数について

    インデックスを下記のように作成しているのですが、 MySQLはインデックスは同時に1つしか使用されないようなので どれを消そうか迷っています。 約177万件レコードがあるのですが、レコード数のうち 一意な値の数が何割以下ならインデックスを 張る意味がないといった基準はあるでしょうか? 一意な値の数 1.1772253(PK int型) 2.2338(idx int型) 3.1122(idx int型) 4.18(idx int型)

    • ベストアンサー
    • MySQL
  • コンポジット一意インデックスとは?

    趣味でPHPとMYSQLをいじってる大学生です。 先日はこちらで助けて頂いてとても助かりました。 ご返答いただきました皆様ありがとうございました。 単発の質問で申し訳ないのですが インデックスの指定をする際に疑問点がでてきたので 質問させて下さい。 タイトルにもあげたのですが、 コンポジット一意インデックスというのは インデックス(インデックスの名前はkeyの値) で複数カラムにインデックス指定するということだと思いますが 一意はユニークというのは 任意の挿入されるレコードは、2つの場合に限定すると 2のカラムを見ると他のレコードとかぶらないというか 要するに2つのフィールドをあわせて考えて、 ユニークであるという理解でよいでしょうか? 言葉がおもいつきませんが 例えば宝くじの  組  番号 購入者 ...etc  A組 0001 B組 0001 A組 0023 C組 ・・・ のようなデータを扱う際に 組と番号にコンポジット一意インデックスを割り振るといいというという理解でいいでしょうか? その理解が正しいか間違っているか? 教えていただけると幸いです。 そして、この理解で正しいのならば もしも 番号=0002 など、2つのフィールドのうち1つで検索した場合だとインデックスは役割を果たすのでしょうか? コンポじゃないと機能しないのか?ということです。 コンポじゃないと機能しないのであれば3つのインデックス つまり、(組,番号[コンポ]),(組),(番号) を作成するのが正しいのでしょうか? よろしくお願い致します。

  • SQL Server2000 と 2005 

    AccessとSQL Server(MSDE2000)で業務システムを作っています。 データを入力するフォーム(入力票)上でLotNoを入力すると該当する単価をビュー原料マスタから取得するようにしています。 LotNo(フォームのテキストボックス)の更新処理後のイベントに・・・ Me![単価] = Dlookup("単価","原料マスタ","LotNo = " & [Forms]![入力票]) としています。MSDE2000の場合は正しい値が取得できますが、SQL Server2005の場合は以下のエラーが出ます。 実行時エラー245  nvarcharの値 '.' をデータ型intに変換できませんでした。 ビュー「原料マスタ」の基になるテーブルの各項目は、 LotNo:nvarchar(13桁) 単価:float です。 どのようにするればよいでしょうか? 型を変換するような処理が必要なのでしょうか? 以上、よろしくお願いします。

  • (phpMyadminの)インデックスサイズの一意な値の数

    初心者です。 教えて頂けますか? 一つのフィールドにユニークのインデックスを付けたのですが (phpMyadminの)インデックスサイズの一意な値の数とありますが、 何を指すのでしょう?一意(ユニーク)の意味は分かるのですがいまいち意味が分かりません。 何の事でしょう? よろしくおねがいします。

  • SQL SERVER 2008 EXPRESS エラー 8016

    サーバー初心者です。 データに空白("")を入れたら下記のエラーメッセージが出てしまいました。どのように対処したらよいのでしょうか? エラー文 [Microsoft][SQL Server Native Client 10.0][SQL Server]着信の表形式のデータ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが不適切です。パラメータ3 (""): データ型 0xE7 に、無効なデータ長またはメタデータ長が指定されています。(#8016) 環境 OS:VISTA HOME Premium サーバー:SQL Server 2008 EXPRESS 列のプロパティ データ型:nvarchar NULLを許容:はい 長さ:300 (50などにしても同じのがでます。) *使用状況 ACCESS から SQL SERVER にリンクして データを挿入したらエラーが出ます。 よろしくお願いします。

  • SQL Serverのリンクサーバーの

    こんにちは。 現在VisualStudio 2008 ProでC#を用いてWebアプリケーションを作成しようとしています。 いつもは、SQL Serverのデータを扱うのにADO.NETを使用してアプリケーションを作成しています。 Webアプリケーションのデータベース用のPCとしてWindows2003とSQL Server2005 Standardが搭載されているPCにAccess2003で作られているmdbがリンクサーバー設定されているものを用意しております。 このmdbは別のシステムで使用されており、常に更新されています。 今のところ、SQL Serverのタスクを用いて定期的(10分おきとか)にこのリンクサーバー上のmdbの情報を読み取り、SQL Server上に作ったテーブルを更新しているのですが、これだと情報を取りにいった時にタスクの更新が行われるまで、古い情報を取得することになります。 リアルタイムで取得することを考えた場合、 C#で作成したアプリケーションでこのSQL Serverにアクセスした時に直接リンクサーバーに対してSQL文を実行するという方法を考えているのですが、いろいろ検索しましたが探すことが出来ませんでした。 この様な方法がありましたら教えていただけないでしょうか?

  • SQL Server7.0と2005

    オービックの「償却奉行2000」を使用しています。 SQL Server7.0です。 このたび同じPCに「弥生販売09」をインストールしようとしたところSQL Server7.0を削除してからSQL Server2005をインストールするようにというメーッセージがでました。 そこで質問なのですが、SQL Server7.0を削除してSQL Server2005をインストールした場合、「償却奉行2000」は問題なく動くのでしょうか 。 あるいはドライブをかえて(D:とかに)SQL Server2005をいれることはできるのでしょうか。 こういう技術的なことはさっぱり分からないのでどうかお願いします。

  • 異なるSQL Server をインストールすると

    お世話になります。 SQL Server 2005 SQL Server 2008 両方のデータを見たいのですが、1台のサーバーに両方のSQL Server をインストールした際に、 クライアントからの接続文字列というのはどのようになるのでしょうか? 同じサーバーですし、インスタンス作る云々という記事を見たのですが、実際どのようにすればいいのか、どのように接続文字列を作成するのかがわかりません。 簡単でかまいませんので、この辺りをご説明していただけますよう、 よろしくお願い申し上げます。

  • 主キー、インデックスが作成できない

    お世話になります。 SQLserver2000とACCESS(フロント)で使っております。 主キーもインデックスも設定していなかったテーブルに エンタープライズマネージャから主キーを設定しようとしたのですが、保存しようとすると以下のエラーが出てしまいます。 もともと更新クエリを作成したのですが、”更新可能なクエリであることが必要です。”とエラーが出てしまい、いろいろ調べるうちに主キーを設定していないから??と思い、設定しようとしたのですがうまくいきません。。宜しくお願いします。 ■エラー内容 テーブル 'テーブル名 (ユーザー名)' - インデックス 'インデックス名' を作成できません。 ODBC エラー : [Microsoft][ODBC SQL Server Driver][SQL Server]インデックス ID 1 で重複したキーが見つかったので、CREATE UNIQUE INDEX は終了しました。もっとも重要な主キーは 'XXXX-00XXXX-00-A1 ' です。 [Microsoft][ODBC SQL Server Driver][SQL Server]制約を作成できませんでした。以前のエラーを調べてください。 [Microsoft][ODBC SQL Server Driver][SQL Server]ステートメントは終了されました。