現在、データベースの照合を変更しています。
列の1つを(データ型varchar(max)で)変更しようとすると、次のエラーが発生するという問題が発生しました。
Cannot create a row of size 8083 which is greater than the allowable maximum row size of 8060.
最大のポストのサイズを確認すると。
select top 1 LEN(Document) as l1,* from GroupDocument where LEN(document) > 8000 order by LEN(document) desc
サイズは39431で、約10ページになります。
これが、照合を変更できない理由だと思います。私は他の列で以前にこの問題に遭遇したことはありません。どんな助けでもいただければ幸いです。
1つの解決策は、テーブルのすべてのコンテンツを別のテーブルにコピーし、照合を変更してから、元に戻すことだと思います。しかし、可能であれば、私はそれをしたくありません。
編集:
次のことを試しました。
テーブルtemptableを作成します(id int、document nvarchar(max))
temptable(id、document)に挿入し、GroupDocumentID、GroupDocumentからDocumentを選択します
alter table GroupDocument drop column Document alter table temptable alter column document nvarchar(max)ALTER TABLE [GroupDocument] add [Document] ntext COLLATE Finnish_Swedish_CI_AS NULL
GroupDocument set Document =を更新します(temptable.id = GroupDocument.GroupDocumentIDであるtemptableからtemptable.documentを選択します)
それでも同じ問題。
問題を引き起こしている行には7996バイトのvarcharがあり、+いくつかのintはそれを境界ケースにしていると思います。