2017-04-06 37 views
0

私はたくさんのデータ(行と列)を持つ3つのテーブルを持っています。私はいくつかの共通の列に基づいてすべてのテーブルからすべての列を選択する必要があります。だから私は、列のないこの合計は、私は(要件ごと)「個別」キーワードを持つすべてのデータを選択すると、今ではエラーがスロー1300その後、よりませんでした:'distinct' wordを使用するとエラー '8060の許容最大行サイズより大きいサイズ8065の行を作成できません。'

Cannot create a row of size 8065 which is greater than the allowable maximum row size of 8060;

が、ときに私はデータキーワード「個別」を削除します返されます。しかし、私は別のレコードを表示する必要があるので、私は別名を削除することはできません。

+2

* "列の合計数が1300を超えています" *:これは、1つの表に非常に多くの列を持つ正当な理由ではありません。データベースを再設計し、正規化します。 – trincot

+3

通常、 'distinct'が必要なときは、結合に関する問題があるからです。必要以上の行に参加していないことは確実ですか?それ以外にも、1300列でアラーム音が鳴ります –

+1

あなたはDISTINCTキーワードが必要ですか? 1300列であり、distinctは行レベルの操作です。スキーマに問題があるか、クエリを書き直す必要があります。 1300の列を持つときには同じ*行*が存在しないことがほぼ確実です。他の場所に重複がある場合は最初に解決してください。他の人が言ったように、1300列はベルを鳴らしてください。 – Pred

答えて

0

この

ALTER TABLE TABLE_NAMEが

+0

これは正確に何をしますか?私ははっきりしていません。 –

0

はい、異なったが、本当に必要とされたREBUILD試してみてください。 Distinctがこの問題を引き起こしていることがわかりました。ヒントをありがとう。私はSQLクエリ/プロシージャからDISTINCT単語を削除し、すべてのレコードをフェッチします。今度は、サーバー側コードのファイルの後ろにある個別のレコードを選択しました。

関連する問題