что делает EXEC master.. Делать?

Я видел это так:

EXEC master.dbo.xp_cmdshell

Что значит master ссылаться?

обновление
И почему иногда следуют два момента:

 master..

как правило, мы будем использовать master.dbo. Я прав, так почему некоторые люди пишут master..?

4 ответов


master является одним из значений по умолчанию системные базы данных SQL Server. Вы можете сказать, потому что то, что вы выложили:

EXEC master.dbo.xp_cmdshell

...использует три обозначения имен. "master "находится в позиции базы данных," dbo "- это схема, а" xp_cmdshell " - это функция/хранимая процедура в этом случае. Эта нотация используется также для ссылок на таблицы и представления в различных контекстах.

Это:

EXEC master..xp_cmdshell

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


Это относится к хранимой процедуре, которая была создана (по умолчанию) в главной таблице.

имя master ссылается на базу данных, содержащую другую схему экземпляра сервера.


в Transact SQL полным путем к любому объекту является:

server_name.db_name.owner.object parm1, ...
  • точки разделяют четыре компонента
  • первые три компонента имеют значения по умолчанию:
    • текущего сервера
    • текущая база данных
    • dbo (владелец базы данных) (который должен быть владельцем общих таблиц)

master - это системная база данных, которая определяет сервер.

для MS, так как системные хранимые процессы все еще находятся в master, следующее совершенно избыточно:

EXEC master.dbo.stored_proc_name parm1, ...
и может быть заменен на:
EXEC stored_proc_name parm1, ...
и с EXEC команда по умолчанию:
stored_proc_name parm1, ...

нет никакой разницы между master.. и master.dbo.. Они оба ненужны при обращении к системным хранимым процессам.


master ссылается на базу данных master (это системная база данных).

в SSMS: базы данных - > системные базы данных - > master