2017-11-01 15 views
0

以下は操作作業の怠惰な部分の好奇心ですので、時間を無駄にしないでくださいあなたの頭の上からの提案があります。最大行サイズのエラー - 遅延SELECT INTOで動作しますが、INSERT INTOでは使用しません

メールファイルで将来使用するために大きなフラットテーブルを作成する便利な部分を使いこなす。

私はこのエラーを取得しています:

Cannot create a row of size 11559 which is greater than the allowable maximum row size of 8060.

は今、私はもともと怠惰なアプローチを取り、問題なくテンプレートテーブル(〜500列、すべてのvarchar(MAX))を作成するためにSELECT * INTO FROMを使用。私が作成したテーブルを切り捨てて、それに挿入すると(SAMEソーステーブルからのストレスがかかる)、私は上記のエラーを返します。

(明確にするために、私はまた、「手動」(すなわちCREATE TABLE)テーブルを作成し、に挿入すると同じ問題を取得しています)

私はそれ故に行サイズ制限(の使用に精通だもののvarchar(max))、特に奇妙なのは、ソーステーブルでshowcontigがソーステーブルのMaximumRecordSizeが3676であるため、問題がどこにあるのかを特定できないということです。

感謝の意を表します。

+2

私たちが問題を再現するためのいくつかの例とテストデータを説明してください。 – TheGameiswar

答えて

0

SQL Server has the limit of 8K per table row。 すべてのnvarchar(nnn)列を見直し、サイズを変更したり、テーブルを分割して正規化したり、複数のテーブルに分割したりする必要があります。 もう1つの回避策は、nvarchar(max)を使用することですが、注意してください。

関連する問題