Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Добавление индексов к таблицам SQL, проблемка. (число прочтений - 1313 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Добавление индексов к таблицам SQL, проблемка.
17. Мая 2008 :: 13:07
Печать  
Если добавить униклаьный индекс, то при обновлении записи 1С будет формировать запрос на UPDATE по полю, которое есть в униклаьном индексе.
Вот содержимое файла 1cv7.ddx:
Код
Выбрать все
X=SC31 %#Доп. индекс
X=SC31 %I=IX1C_SC31_KodIdent		    |		  |1     |SP34									  |0      


Создается уникальный индекс по полю SP34.
После чего пытаемся обновить запись (отредактировать элемент) и смотрим на запрос, вот он:
Код
Выбрать все
exec sp_executesql N'Update SC31 set  ID=@P1, PARENTID=@P2, CODE=@P3, DESCR=@P4, ISFOLDER=@P5, ISMARK=@P6, VERSTAMP=@P7, SP33=@P8 where  SP34=@P9',N'@P1 varchar(9),@P2 varchar(9),@P3 varchar(10),@P4 varchar(25),@P5 tinyint,@P6 bit,@P7 int,@P8 varchar(10),@P9 varchar(10)','     1   ','     0   ','0000000001','eryserhdfhdghfdjhdfj',2,0,5,'dfsh	','5675675474' 


как видно условие "where  SP34=@P9", если же индекс сделать не униклаьным, тогда запрос становиться таким:
Код
Выбрать все
exec sp_executesql N'Update SC31 set  ID=@P1, PARENTID=@P2, CODE=@P3, DESCR=@P4, ISFOLDER=@P5, ISMARK=@P6, VERSTAMP=@P7, SP33=@P8, SP34=@P9 where  ROW_ID=@P10',N'@P1 varchar(9),@P2 varchar(9),@P3 varchar(10),@P4 varchar(25),@P5 tinyint,@P6 bit,@P7 int,@P8 varchar(10),@P9 varchar(10),@P10 int','     1   ','     0   ','0000000001','dfhdhdfh',2,0,2,'dfsh	','36457e567 ',1 


как видно условие "where  ROW_ID=@P10". Теперь когда вы вдруг поменяете поле SP34, то оно никак не сохраниться потому как условие фомриурется уже по отредактированному значению. Но еще хучже, когда вдруг в системме уже есть значение и проапдейтится запись совсем не та что надо (в том числе и ID).
  
Наверх
IP записан
 
Anreko
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 3
Зарегистрирован: 05. Августа 2009
Re: Добавление индексов к таблицам SQL, проблемка.
Ответ #1 - 05. Августа 2009 :: 04:03
Печать  
Всплыла та же самая проблема, дело видимо в том, что ExtDD.vbs записывает индексы из 1CV7.dds перед основными индексами, а в основных первым всегда идет уникальный. После того, как переписали индекс в конец проблема исчезла.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать