AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.07.2009, 11:55   #1  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
сабж возникает при попытке скомпилить таблицу с первичным ключом длиной 20 записей
Старый 28.07.2009, 11:59   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Lrundom Посмотреть сообщение
сабж возникает при попытке скомпилить таблицу с первичным ключом длиной 20 записей
Суммарная длина полей в таблице не может превышать 4096 байт..
Есть еще ряд ограничений...
Что вы хотели узнать? )
Старый 28.07.2009, 12:30   #3  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
суммарная длина полей значительно меньше 4096 байт
Старый 28.07.2009, 13:20   #4  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Lrundom Посмотреть сообщение
суммарная длина полей значительно меньше 4096 байт
Да нет, это был почти стеб..
Есть в навижене ряд ограничений. Озвученное вами - одно из них. Се ля ви. Это надо принять.
А что так много полей? Какой нить Учетный Буфер?
Старый 28.07.2009, 13:25   #5  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от romeo Посмотреть сообщение
Суммарная длина полей в таблице не может превышать 4096 байт..
Есть еще ряд ограничений...
Легкое уточнение про ключик (так как сообщение было про него) по длине - 252 байта.

P.S. Для уточнения я создал табличку с 11 полями Code 100 и при попытке создать ключик получил сообщение (см. файл):
Миниатюры
Нажмите на изображение для увеличения
Название: Key.JPG
Просмотров: 470
Размер:	19.2 Кб
ID:	10504  
Старый 28.07.2009, 13:29   #6  
Lrundom is offline
Lrundom
Участник
 
76 / 10 (1) +
Регистрация: 24.08.2007
ща покапалась и выяснила что это совсем не ограничение навика.. а сиквелсервера..
в хелпе 2005-му грится "Columns per foreign key = 16", причем с пометкой "If the table contains one or more XML indexes, the clustering key of the user table is limited to 15 columns because the XML column is added to the clustering key of the primary XML index. In SQL Server 2005, you can include nonkey columns in a nonclustered index to avoid the limitation of a maximum of 16 key columns. "
Самое интересное - это последняя фраза.. в которой грится как обойти это ограничение в 16 столбцов..(хотя я так полагаю это к первичному ключу не относится..)
Старый 02.08.2009, 01:42   #7  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от Lrundom Посмотреть сообщение
ща покапалась и выяснила что это совсем не ограничение навика.. а сиквелсервера..
в хелпе 2005-му грится "Columns per foreign key = 16", причем с пометкой "If the table contains one or more XML indexes, the clustering key of the user table is limited to 15 columns because the XML column is added to the clustering key of the primary XML index. In SQL Server 2005, you can include nonkey columns in a nonclustered index to avoid the limitation of a maximum of 16 key columns. "
Немного теории по SQL 2005:
Таблицы и индексы хранятся в виде коллекции страниц размером 8 КБ.
В SQL Server кластеризованные индексы организованы в виде сбалансированных деревьев. Каждая страница в сбалансированном дереве индекса называется узлом индекса. Верхний узел сбалансированного дерева называется корневым. Узлы нижнего уровня индекса называются конечными. Все уровни индекса между корневыми и конечными узлами называются промежуточными. В кластеризованном индексе конечные узлы содержат страницы данных базовой таблицы.
Цитата:
Самое интересное - это последняя фраза.. в которой грится как обойти это ограничение в 16 столбцов..(хотя я так полагаю это к первичному ключу не относится..)
Некластеризованные индексы имеют ту же структуру сбалансированного дерева, что и кластеризованные индексы; существуют только следующие различия:
* строки данных в базовой таблице не сортируются и хранятся в порядке, который основан на их некластеризованных ключах;
* конечный уровень некластеризованного индекса состоит из страниц индекса вместо страниц данных.
...
Максимальное число байтов в любом ключе индекса не может превышать 900 в SQL Server 2005. Можно определить ключ, использующий столбцы переменной длины, максимальная длина которых может превышать 900 байт при условии, что в эти столбцы не будут вставляться строки объемом более 900 байт данных. В SQL Server 2005 в некластеризованный индекс можно включать неключевые столбцы, чтобы избежать ограничения максимального размера ключа индекса, равного 900 байт. Дополнительные сведения см. в разделе Индекс с включенными столбцами.
...
Требования к размеру столбцов
* Должен быть определен как минимум один ключевой столбец. Максимальное количество неключевых столбцов равно 1023. Это на 1 меньше, чем максимальное количество столбцов таблицы.
* Ключевые столбцы индекса, в отличие от неключевых, должны удовлетворять текущим ограничениям на максимальное количество столбцов (16) и общий размер ключа индекса (900 байт).
* Общий размер всех неключевых столбцов ограничен только размером столбцов, указанных в предложении INCLUDE, например столбцы varchar(max) могут иметь размер до 2 ГБ.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 22:41.