Как хранимый процесс может получить имя базы данных, в которой он работает? - PullRequest
0 голосов
/ 14 июля 2009

У меня есть хранимая процедура, которую можно запустить в нескольких базах данных, и функционирование хранимой процедуры должно немного отличаться в зависимости от базы данных. Я ходил по всем книгам в Интернете и заглядывал в системные таблицы, чтобы выяснить, не может ли это быть где-то там, но пока радости нет.

Здесь должен быть кто-то, кто просто знает об этом, если он вообще существует.

Ответы [ 2 ]

5 голосов
/ 14 июля 2009
SELECT db_name()

Должен сделать это. Документы здесь .

1 голос
/ 14 июля 2009

Процедура всегда выполняется в базе данных, в которой она существует. Вызов EXEC <dbfoo>..<procname> в точности соответствует контексту <dbfoo>, затем выполняется <procname>.

Если у вас несколько процедур, по одной в каждой БД,затем вы можете либо изменить процедуру соответственно для каждой БД, либо использовать DB_NAME () , чтобы получить текущий дБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...