Обойти ограничение максимального размера столбцов в SQL Server 1024 и 8 КБ

Я создаю таблицу с 1000 столбцами. Большинство столбцовnvarchar тип. Таблица создана, но с предупреждением

Предупреждение. Таблица «Тест» создана, но ее максимальный размер строки превышает допустимый максимум в 8060 байт. INSERT или UPDATE этой таблицы завершатся неудачно, если результирующая строка превысит ограничение размера.

В большинстве столбцов таблицы уже есть данные (то есть 99% столбцов содержат данные). Когда я пытаюсь обновить любой столбец после 310-го (где все 309 столбцов имеют некоторое значение), он выдает ошибку:

Невозможно создать строку размером 8061, которая превышает максимально допустимый размер строки 8060.

Я вставляю эти данные во все стартовые 308 столбцов

"Lorem Ipsum Dolor Sit Amet, Экипетер-Адепсис".

Когда я используюntext тип данных, то это позволяет мне обновить около 450 столбцов, но помимо этогоntext также не позволяет мне. Я должен обновить по крайней мере 700 столбцов. Какой SQL Server не позволяет это сделать. У меня есть сценарий, что я не могу переместить некоторые столбцы таблицы в другую таблицу.

На самом деле я работаю для существующего оконного приложения. Это очень большое приложение для Windows.

На самом деле таблица, в которую я пытаюсь вставить до 700 столбцов nvarchar, создается динамически во время выполнения. Только в некоторых случаях требуется вставить 400-600 столбцов. Но обычно для этого нужно 100-200 колонок, которые я могу легко обработать.

Проблема в том, что я не могу разбить эту таблицу на несколько таблиц. Поскольку множество таблиц, созданных с этой структурой, и имена таблиц хранятся в другой таблице, то есть существует более 100 таблиц с этой структурой, и они создаются динамически. Для создания таблицы и манипулирования ее данными используется 4-5 языков (C #, Java ..), а также включаются WCF, Windows Service и Webservices.

Поэтому я не думаю, что было бы легко манипулировать таблицей и ее данными после разбиения таблицы. Если я разделю таблицу, то это потребует много структурных изменений.

Поэтому, пожалуйста, предложите мне, что было бы лучшим способом решить эту проблему.

Я также пытался использоватьРазреженная колонна любить:

Create table ABCD(Id int, Name varchar(100) Sparse, Age int);

Я тоже думал оColumnStoreIndex но моя цель не решена.

Разреженные столбцы позволяют мне создавать 3000 столбцов для таблицы, но это также ограничивает меня по размеру страницы.

Есть ли способ достичь этого с помощью какой-то временной таблицы или с помощью любого другого типа объекта сервера SQL?

Ответы на вопрос(7)

Ваш ответ на вопрос