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

Откуда:
Сообщений: 2
есть такая процедурка
DECLARE @backBase sysname -- name of back base
DECLARE @backFile sysname -- name of back file

SELECT @backFile = 'InvestWA_Log'-- Type file name
SELECT @backBase = 'InvestWA' -- Type DB name

use @backBase -- Type DB name

dbcc shrinkfile (@backFile, 150, TRUNCATEONLY )
backup log @backBase to gendlog
dbcc shrinkfile (@backFile, 150)
go
EXEC sp_helpdb @backBase



в строках
use @backBase -- Type DB name
EXEC sp_helpdb @backBase

дает ошибку
если писать непосредственно имя базы то все ОК.

вопрос :
можно ли имя базы использовать в качестве переменной
16 мар 04, 12:15    [579932]     Ответить | Цитировать Сообщить модератору
 Re: Имя базы как переменная  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37100
автор
можно ли имя базы использовать в качестве переменной

Нет. Используйте динамический SQLЖ
exec('use ' + @backBase + ' EXEC sp_helpdb ' + @backBase )
16 мар 04, 12:18    [579949]     Ответить | Цитировать Сообщить модератору
 Re: Имя базы как переменная  [new]
Oldieg
Member

Откуда:
Сообщений: 2
заработало!
спасибо!
16 мар 04, 12:27    [579981]     Ответить | Цитировать Сообщить модератору
 Re: Имя базы как переменная  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37100
автор
exec('use ' + @backBase + ' EXEC sp_helpdb ' + @backBase )

В данном случае вообще можно написать
exec('exec ' + @BackBase + '..sp_helpdb')

Но это уже лирика.
16 мар 04, 12:29    [579987]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить