Во-первых, я знаю, что в целом наличие большого количества широких столбцов - плохая идея, но это формат, к которому я привязан.Есть ли способ ограничения длины строки 8k в SQL Server?
У меня есть приложение, которое импортирует CSV-файлы в промежуточную таблицу, прежде чем манипулировать ими и вставлять/обновлять значения в базе данных. Переменная таблица создается «на лету» и имеет переменное количество кодов NVARCHAR, в которые импортируется файл, плюс два столбца INT, используемые в качестве идентификаторов строк.
Один конкретный файл, который я должен импортировать, составляет около 450 колонок. С 24-байтовым указателем, используемым в большой колонке NVARCHAR, это составляет около 10 тыс. По моим расчетам, и я получаю ошибку Cannot create a row of size 11166 which is greater than the allowable maximum row size of 8060.
Есть ли способ обойти это или мои варианты выбора, изменяющие импортер для разделения импорта или удаление столбцов из файла?
Взгляните на SSIS. http://www.microsoft.com/en-us/sqlserver/solutions-technologies/enterprise-information-management/integration-services.aspx Это позволит вам читать в CSV и фильтровать и отделять строки от разных целевых таблиц. – flup
Ни в коем случае. Если вы на самом деле создаете строку + 8k даже после высечки за пределами строки, вам не повезло. –
Создайте две или более таблицы и вставьте 450 столбцов, разделенных вокруг этих таблиц, связанных с ключами. – Max