none
SQL Server 2008 expless でvarbinary(max) 列にフルテキストインデックス設定ができない RRS feed

  • 質問

  • SQL Server 2008 expless にてテーブルの項目にvarbinary(max) 列を作成し、
    フルテキストのインデックスを作成しようとすると「列 xxx のフルテキスト型列が無効です。」と
    表示されフルテキストのインデックス作成ができない状況です。
    他のvarchar(max) では作成され検索もできる状態です。
    申し訳ありませんが対応方法を教えてください。
    • 編集済み Riki_88 2009年8月19日 2:28
    2009年8月19日 2:15

回答

  • こんにちは、nagino です。

    型列を指定していないのでは無いでしょうか。
    型列については、以下のページ中ほどの「メモ」の下に記載があります。

    CREATE FULLTEXT INDEX で作成している場合は、TYPE COLUMN を指定してください。

    SQL Server Management Studio のフルテキストインデックス作成ウィザードで作成している場合は、データ型列を指定してください。
    (未確認ですが、SQL Server Management Studio Express にはこの機能は無いかもしれません)


    MCITP(Database Developer/Database Administrator)
    • 回答としてマーク 菊地俊介 2009年8月31日 8:45
    2009年8月19日 3:04
  • エラーメッセージの通り、TYPE COLUMN 句で 260 バイト以下の文字列型の列を指定しても発生するのでしょうか?
    実際に行った操作が示されていないのでなんとも分かりませんが、CREATE FULLTEXT INDEX 文に文法ミスが無いか、確認してみたらいかがでしょうか。

    ちなみに、手元の環境(SQL Server 2008)でわざと TYPE COLUMN 句に varbinary(max) の列を指定したりすると同様のエラーが発生するようですが、さすがにそれは無いですよね・・・。

    Express Edition の環境が手元に無いので、もし出来ないのであれば Express Edition の制限かもしれませんね。


    MCITP(Database Developer/Database Administrator)
    • 回答としてマーク 菊地俊介 2009年8月31日 8:45
    2009年8月21日 1:06

すべての返信

  • こんにちは、nagino です。

    型列を指定していないのでは無いでしょうか。
    型列については、以下のページ中ほどの「メモ」の下に記載があります。

    CREATE FULLTEXT INDEX で作成している場合は、TYPE COLUMN を指定してください。

    SQL Server Management Studio のフルテキストインデックス作成ウィザードで作成している場合は、データ型列を指定してください。
    (未確認ですが、SQL Server Management Studio Express にはこの機能は無いかもしれません)


    MCITP(Database Developer/Database Administrator)
    • 回答としてマーク 菊地俊介 2009年8月31日 8:45
    2009年8月19日 3:04
  • ご回答ありがとうございます。
     
    データ整列の指定ができていませんでした。
    SQL Server Management Studio Express でデータ整列を指定する場所がありませんでした。
    そのため、CREATE FULLTEXT INDEXにて指定しようとすると次のメッセージが出ます。

    「列 'column_name' を image 列のフルテキスト型の列として使用できません。この列は、サイズが 260 文字以下の文字ベースの列にしてください。」

    もしかして、varbinary(max) でのフルテキストインデックスはSQL Server 2008 explessの制限なのでしょうか?
    2009年8月19日 4:51
  • エラーメッセージの通り、TYPE COLUMN 句で 260 バイト以下の文字列型の列を指定しても発生するのでしょうか?
    実際に行った操作が示されていないのでなんとも分かりませんが、CREATE FULLTEXT INDEX 文に文法ミスが無いか、確認してみたらいかがでしょうか。

    ちなみに、手元の環境(SQL Server 2008)でわざと TYPE COLUMN 句に varbinary(max) の列を指定したりすると同様のエラーが発生するようですが、さすがにそれは無いですよね・・・。

    Express Edition の環境が手元に無いので、もし出来ないのであれば Express Edition の制限かもしれませんね。


    MCITP(Database Developer/Database Administrator)
    • 回答としてマーク 菊地俊介 2009年8月31日 8:45
    2009年8月21日 1:06
  • ご指摘ありがとうございました。
     TYPE COLUMN 句に varbinary(max) の列を指定していました。
    別項目で指定することでvarbinary(max) 列にフルテキストインデックスを設定することができました。
    2009年8月24日 5:16
  • こんにちは。フォーラムのご利用ありがとうございます。

    naginoさん、いつも回答ありがとうございます。

    Riki_88さんがご質問された問題は無事解決したようですね。
    勝手ながら、naginoさんの回答へ回答マークをつけさせていただきました。

    今後ともフォーラムをよろしくお願いします。
    それでは!
    2009年8月31日 8:49