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

Откуда:
Сообщений: 179
Доброго времени суток всем!
Такой вопрос - нужно реализовать что-то вроде этого:
EXEC sp_dbcmptlevel DB_NAME(), 90

При выполнении ругается на DB_NAME() - Неправильный синтаксис около конструкции ")".
Если выполнять следующим образом:
declare @sql	varchar(255)
begin
  set @sql = 'exec sp_dbcmptlevel ' + DB_NAME() + ', 90;'
  --print @sql
  exec(@sql)
end 

Ругается - Хранимая процедура "sys.sp_dbcmptlevel" может быть выполнена только на нерегламентированном уровне.
Как быть?
4 июн 12, 14:41    [12661968]     Ответить | Цитировать Сообщить модератору
 Re: exec  [new]
step_ks
Member

Откуда:
Сообщений: 936
На каком - каком уровне?
Вот переменную @sql вы догадались объявить, а переменную типа @db_name почему не объявить?
4 июн 12, 14:48    [12662011]     Ответить | Цитировать Сообщить модератору
 Re: exec  [new]
Glory
Member

Откуда:
Сообщений: 104751
declare @x varchar(20)
set @x = DB_NAME()
exec sp_dbcmptlevel @x, 90
4 июн 12, 14:48    [12662015]     Ответить | Цитировать Сообщить модератору
 Re: exec  [new]
Tester666
Member

Откуда:
Сообщений: 179
Всем спасибо, вопрос снят...вот что значит напряженный рабочий день %-)
4 июн 12, 14:53    [12662057]     Ответить | Цитировать Сообщить модератору
 Re: exec  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Glory
declare @x varchar(20)
set @x = DB_NAME()
exec sp_dbcmptlevel @x, 90
Но по-хорошему надо sysname вместо varchar(20)
4 июн 12, 17:59    [12663631]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить