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

Откуда:
Сообщений: 37
Здравствуйте.

Встала задача написать процедуру, которая в качестве параметра принимает имя базы данных.
Т.е. в теле процедуры идет обращение к таблицам переданной в качестве параметра базы.
Как сделать что-то вроде:

SELECT * FROM @DBNAME.dbo.MyTable

Есть ли возможность реализовать нечто подобное без использования EXEC?
28 янв 13, 12:02    [13838194]     Ответить | Цитировать Сообщить модератору
 Re: Имя базыданных в качестве параметра  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
https://www.sql.ru/faq/faq_topic.aspx?fid=104
28 янв 13, 12:03    [13838200]     Ответить | Цитировать Сообщить модератору
 Re: Имя базыданных в качестве параметра  [new]
JustNoob
Member

Откуда:
Сообщений: 37
Как делать с помощью EXEC я понимаю, но мне необходимо без нее.
Может быть можно использовать USE @DBNAME, но вот как это сделать?

При попытке реализовать:

SET @DBNAME = 'MYDB'
USE @DBNAME
SELECT * FROM MyTable

конечно же ничего не получается.
28 янв 13, 12:22    [13838357]     Ответить | Цитировать Сообщить модератору
 Re: Имя базыданных в качестве параметра  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Лучше сделать секционированное представление для dbo.MyTable из всех баз.
28 янв 13, 12:23    [13838367]     Ответить | Цитировать Сообщить модератору
 Re: Имя базыданных в качестве параметра  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
JustNoob
Как делать с помощью EXEC я понимаю, но мне необходимо без нее.
Тогда найдите какую-нибудь другую СУБД, в которой вы сможете выполнить динамический запрос без EXEC.
28 янв 13, 12:24    [13838374]     Ответить | Цитировать Сообщить модератору
 Re: Имя базыданных в качестве параметра  [new]
AlexandrPlus
Member

Откуда:
Сообщений: 7887
JustNoob
Как делать с помощью EXEC я понимаю, но мне необходимо без нее.


Если не секрет - это в какой ситуации?
28 янв 13, 14:57    [13839560]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить