既存の SQL NText列をnvcharmax(max)に変更しようとしていますが、サイズ制限でエラーが発生しました。既存のデータは大量にあり、そのうちのいくつかは 8k の制限を超えていると思います。
これを変換して、LINQ でフィールドを検索できるようにします。
私が試した2つのSQLステートメントは次のとおりです。
update Table
set dataNVarChar = convert(nvarchar(max), dataNtext)
where dataNtext is not null
update Table
set dataNVarChar = cast(dataNtext as nvarchar(max))
where dataNtext is not null
そして、私が得るエラーは次のとおりです。
Cannot create a row of size 8086 which is greater than the allowable maximum row size of 8060.
これは SQL Server 2008 を使用しています。
助けていただければ幸いです、ありがとう。
更新/解決策:
以下のマークされた回答は正しいです。SQL 2008 は、私の状況では列を正しいデータ型に変更できます。その上で使用する LINQ を利用するアプリケーションにはドラマはありません。
alter table [TBL] alter column [COL] nvarchar(max)
また、次のようにフォローアップするようにアドバイスされました。
update [TBL] set [COL] = [COL]
データを LOB 構造からテーブルに移動することで変換が完了し (長さが 8k 未満の場合)、パフォーマンスが向上し、適切な状態が維持されます。