Создание системных индексов.

Владимир
Дата: 20.02.2001 16:34:47
Кто знает на чем основываеться SQL Server 7.0 когда создает системный индекс.
Он мне наделал индексев на поля которые не входят и не входили в FK, причем он это делает как то выборочно.
пример поля: CDate dDate
где
CDate - имя поля
dDate - тип поля UDDT (datatime)
Fompro
Дата: 21.02.2001 10:25:06
Если возможно, пожалуйста, опишите ситуацию поподробнее ... Что Вы делали, клиент, возможно пример скрипта, или чем Вы пользовались.
Владимир
Дата: 21.02.2001 11:01:20
Данное поле добавлялось в таблицы через процедуру, которая выбирает все таблице (не системные), сосдает строку для оператора EXEC и выполняет эту строку.
Кусок процедуры который делает соответствующие изменения в БД такой:
set @ExStr = 'alter table ' + @Name + ' add ' + @inColumn + ' ' + @Type + ' not null'
или
set @ExStr = 'alter table ' + @Name + ' add ' + @inColumn + ' ' + @Type + ' null'
а затем:
exec(@ExStr)

Скажем в БД 40 таблиц, из них в 30 появились системные индексы на поле вставленное токим образом.

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

Самое интересно в том, что когда я сгенерировал SQL скрипт данной БД и создал такую-же БД, но с другим именем индексы появились но соотношение было другое не 40 к 30, а 40 к 10.
В самом скрипте каких либо различий, при создании БД, между созданием полей на каторых системный индекс создался и на которых - несоздался я не обнаружел.