2016-06-21 23 views
0
create table article 
(
    ArticleID int constraint cnst-name Primary key, 
    Description datatype 
) 

SQL Server 2014でこのテーブルを作成しています。巨大なデータを持つ記事を格納できるテーブルを作成しようとしています(1000-2000語の記事の説明が可能です) 。私は説明の列にどのデータ型を選択するか分からない。SQL Serverに大量のデータを格納

私はvarchar(max)を選択しましたが、各行は< = 900バイトでなければならないという制限があります。私のテーブル構造が正しいかどうか私を案内してください。

ありがとうございます。

+1

'varchar(max)'は '900バイトではなく' 2GB'データの制限を持っています。私はちょうど 'Varchar(max)'あるいは多分 'Varchar(8000)'と言うでしょうか? –

+0

'varchar(max)'はうまくいくはずです。データを処理するのに十分なはずです。あなたは 'text'を使うことができますが、それはmysqlの今後のバージョンでは減価償却されますが、mysqlについてはわからない –

+2

900バイトがインデックスキーの最大サイズ –

答えて

1

nvarchar(max)を使用します。ユニコードとは異なり、varcharとは異なります。制限は2GBで十分です。

行サイズの制限は8060Bです。したがって、行には約4000個以上のUnicode文字を格納することはできません。ただし、この制限はnvarchar(max)が行に格納されていないため、ここでは適用されません。行にはポインタのみが含まれています。この1つの間接指定は、「無制限」サイズの価格です。

+0

nvarchar(1000)を使用すると、コメントに上記のエラーが表示されます。 – jvf

+0

@jvf「900バイトはインデックスキーの最大サイズです」 - 読んだことはありますか?この制限のために、2kBのキーを持つ一意制約(インデックスで実現)を持つことはできません。 –

+0

私は一意のキーを削除しましたが、それでもエラーを出していました。私は新しいデータベースを作成しました。ありがとう:) – jvf

2

VARCHAR(max)を使用してください。 .txtファイルの2000語は約13kbです。 私はそれを「巨大」と呼んでいません。

関連する問題