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

Откуда: glubinka
Сообщений: 4257
хочется сделать
exec sp_MSforeachtable "CREATE NONCLUSTERED INDEX idx_'+parsename('?',1)+'_discharge ON ?'"


но что-то не выходит каменный цветок, просто принт победил:

exec sp_MSforeachtable "print 'CREATE NONCLUSTERED INDEX idx_'+parsename('?',1)+'_discharge ON ?'"

вот только сама команд неходит:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '+parsename('.
Msg 105, Level 15, State 1, Line 1
Unclosed quotation mark after the character string ''.
11 авг 14, 00:07    [16424018]     Ответить | Цитировать Сообщить модератору
 Re: борьба с sp_MSforeachtable  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Выражения не могут выступать параметрами процедуры.
11 авг 14, 00:24    [16424080]     Ответить | Цитировать Сообщить модератору
 Re: борьба с sp_MSforeachtable  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4257
в итоге я могу написать цикл с курсором и вызывать sp_executesql но хотелось бы как то по-короче
11 авг 14, 00:33    [16424111]     Ответить | Цитировать Сообщить модератору
 Re: борьба с sp_MSforeachtable  [new]
invm
Member

Откуда: Москва
Сообщений: 9913
exec sp_MSforeachtable 'declare @s varchar(max); set @s = ''create nonclustered index '' + quotename(''idx_'' + parsename(''?'', 1) + ''_discharge'') + '' on ?''; print @s;';

После визуальной проверки print @s заменить на exec(@s)
Ну и индексов без столбцов не бывает.
11 авг 14, 00:33    [16424112]     Ответить | Цитировать Сообщить модератору
 Re: борьба с sp_MSforeachtable  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lepsik
но хотелось бы как то по-короче

Когда вы поймете, что sp_MSforeachtable не сформирует за вас текст динамического запроса, то поймете, и что укоротить сильно и не получится.
11 авг 14, 10:48    [16424803]     Ответить | Цитировать Сообщить модератору
 Re: борьба с sp_MSforeachtable  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 9157
Не пользуйтесь недокументированными процедурами и функциями.
11 авг 14, 11:28    [16424970]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить