T-SQL: выберите в редкий стол?
-
01-10-2019 - |
Вопрос
Я мигрирую большое количество в основном пустых таблиц в SQL Server 2008.
Таблицы являются вертикальными перегородками одной большой логической таблицы.
Проблема в этой логической таблице состоит из более чем 1024 столбцов.
Учитывая, что большинство полей NULL, я планирую использовать редкий стол.
Для всех моих таблиц до сих пор я использовал выбор ... в, который работает очень хорошо.
Однако теперь у меня «создать таблицу не удалось, потому что столбец« XYZ »в таблице« MyBigtable »превышает максимум 1024 столбцов».
Есть ли способ, которым я могу сделать выбор ... в так, чтобы он создал новую таблицу с редкой поддержкой?
Решение
Что вы, вероятно, хотите сделать, это создать стол вручную и заполнить его INSERT ... SELECT
утверждение.
Чтобы создать таблицу, я бы порекомендовал скрипцию разных таблиц компонентов и объединения их определений, что делает их всеми SPARSE
как необходимо. Тогда просто запустите свой сингл CREATE TABLE
утверждение.
Другие советы
Вы не можете (и, вероятно, не хотите в любом случае). Видеть В пункт (TSQL) для документации MSDN.
Проблема в том, что редкие таблицы являются физическими хранилищами, а не логическими характеристикой, поэтому нет никакого способа, чтобы двигатель СУБД не знал бы скопировать эту характеристику. Кроме того, это широкое свойство, а выбор может иметь несколько базовых источников. См. Раздел «Замечания страницы», которую я связал, где обсуждается, как вы можете использовать только детали организации по умолчанию.