Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Ошибка в скрипте  [new]
=Сергей=
Member

Откуда:
Сообщений: 329
Есть скрипт:
if not exists (select 1 from sys.indexes where [object_id] = object_id('T_AltChanges_') and [name] = 'idx_Param')
	create nonclustered index [idx_Param] on [dbo].[T_AltChanges_]([Param])
if not exists (select 1 from sys.indexes where [object_id] = object_id('T_AltChanges_') and [name] = 'idx_Value')
	create nonclustered index [idx_Value] on [dbo].[T_AltChanges_]([Value])
if not exists (select 1 from sys.indexes where [object_id] = object_id('T_AltChanges_') and [name] = 'idx_BegTime')
	create nonclustered index [idx_BegTime] on [dbo].[T_AltChanges_]([BegTime])

select [Param],[Value],min([BegTime]), max([EndTime]), sum([Count])
	from T_AltChanges_ with (index = idx_Param,index = idx_Value,index = idx_BegTime)
		group by [Group],[Param],[Value]

При его выполнении, когда индексов нет, вместо построения индексов и последующего выполнения запроса, возникает ошибка отсутствия индексов, указанных в запросе.
Если исполнять запрос в SSMS, то проблема решается добавлением перед запросом команды go, а как быть, если исполняю вне SSMS, где команда не работает?
13 фев 15, 11:36    [17259666]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
Maxx_UA
Guest
автор
Если исполнять запрос в SSMS, то проблема решается добавлением перед запросом команды go, а как быть, если исполняю вне SSMS, где команда не работает?

Точно также....
А зачем такой огород вообще городить то ?
13 фев 15, 11:38    [17259686]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
=Сергей=,

создавать индексы в динамическом SQL
13 фев 15, 11:39    [17259689]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
Maxx_UA
автор
Если исполнять запрос в SSMS, то проблема решается добавлением перед запросом команды go, а как быть, если исполняю вне SSMS, где команда не работает?

Точно также....
А зачем такой огород вообще городить то ?
+100500
Не надо смешивать DDL и DML
13 фев 15, 11:40    [17259698]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
=Сергей=
Member

Откуда:
Сообщений: 329
Если можно, расскажите, как решить проблему?
13 фев 15, 11:46    [17259743]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
так ужеже вроде рассказали .. или не ?
13 фев 15, 11:47    [17259756]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
=Сергей=
Member

Откуда:
Сообщений: 329
Maxx,
Я уже понял, что смешивать DDL и DML неправильно, но может быть есть какой-либо вариант?
13 фев 15, 11:53    [17259818]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
invm
Member

Откуда: Москва
Сообщений: 9405
=Сергей=
но может быть есть какой-либо вариант?
Запрос обернуть в exec().
13 фев 15, 11:57    [17259863]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в скрипте  [new]
=Сергей=
Member

Откуда:
Сообщений: 329
invm
Запрос обернуть в exec().

Помогло, спасибо!
13 фев 15, 12:19    [17260042]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить