что делает 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