Pracuj nad maksymalnym limitem kolumn SQL Server 1024 i 8kb

Tworzę tabelę z 1000 kolumn. Większość kolumn tonvarchar rodzaj. Tabela jest tworzona, ale z ostrzeżeniem

Ostrzeżenie: Tabela „Test” została utworzona, ale jej maksymalny rozmiar wiersza przekracza dozwolone maksimum 8060 bajtów. INSERT lub UPDATE do tej tabeli nie powiedzie się, jeśli wynikowy wiersz przekroczy limit rozmiaru.

Większość kolumn tabeli ma już dane (tj. 99% kolumn ma dane). Kiedy próbuję zaktualizować dowolną kolumnę po 310-tej (gdzie jako wszystkie początkowe 309 kolumny mające jakąś wartość) daje błąd:

Nie można utworzyć wiersza o rozmiarze 8061, który jest większy niż dopuszczalny maksymalny rozmiar wiersza 8060.

Wstawiam te dane do wszystkich początkowych 308 kolumn

„Lorem ipsum dolor sit amet, consectetur adipisicing elit”.

Kiedy używamntext Typ danych pozwala mi zaktualizować około 450 kolumn, ale poza tymntext też mi nie pozwala. Muszę zaktualizować co najmniej 700 kolumn. Który SQL Server nie pozwala na to. Mam scenariusz, że nie mogę przenieść niektórych kolumn tabeli do innej tabeli.

Właściwie pracuję dla istniejącej aplikacji okna. To bardzo duża aplikacja dla systemu Windows.

W rzeczywistości tabela, w której próbuję wstawić do 700 danych kolumn nvarchar, jest tworzona dynamicznie w czasie wykonywania. Tylko w niektórych przypadkach wymaga wstawienia 400-600 kolumn. Ale generalnie potrzebuje 100 -200 kolumn, które mogę łatwo przetwarzać.

Problem polega na tym, że nie mogę podzielić tej tabeli na wiele tabel. Ponieważ wiele tabel utworzonych przy użyciu tych struktur i nazw tabel jest utrzymywanych w innej tabeli, tzn. Istnieje ponad 100 tabel z tą strukturą i są one tworzone dynamicznie. Do tworzenia tabeli i manipulowania jej danymi używane są 4-5 języków (C #, Java ..) oraz WCF, Windows Service i Webservices.

Nie sądzę więc, aby łatwo było manipulować tabelą i jej danymi po podziale tabeli. Gdybym podzielił tabelę, wymagałoby to wielu zmian strukturalnych.

Więc proszę zasugeruj mi, jaki byłby najlepszy sposób rozwiązania tego problemu.

Próbowałem również użyćRzadka kolumna lubić:

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

Myślałem też o tymColumnStoreIndex ale mój cel nie został rozwiązany.

Rzadka kolumna pozwala na utworzenie 3000 kolumn dla tabeli, ale także ogranicza mnie do rozmiaru strony.

Czy jest jakiś sposób na osiągnięcie tego przy użyciu tymczasowej tabeli lub przy użyciu dowolnego innego obiektu serwera SQL?

questionAnswers(7)

yourAnswerToTheQuestion