我见过这样的话:
EXEC master.dbo.xp_cmdshell
master
指的是什么?
更新
为什么有时会有两点:
master..
一般情况下我们会使用master.dbo.
我是否正确,为什么有些人会写master..
?
答案 0 :(得分:7)
master
是默认SQL Server system databases之一。你可以告诉你,因为你发布了什么:
EXEC master.dbo.xp_cmdshell
...使用三个名称表示法。 “master”在数据库位置,“dbo”是模式,“xp_cmdshell”是这种情况下的函数/存储过程。您可以在不同的上下文中使用此表示法来引用表和视图。
此:
EXEC master..xp_cmdshell
...只是省略了架构,但如果在数据库中使用了多个架构,则不是一个好主意。
答案 1 :(得分:3)
它指的是在主表中创建(默认情况下)的存储过程。
名称master指的是包含服务器实例的不同模式的数据库。
答案 2 :(得分:3)
在Transact SQL中,任何对象的完全限定路径为:
server_name.db_name.owner.object parm1, ...
master
是定义服务器的系统数据库。
对于MS,由于系统存储过程仍位于master
,以下内容完全是多余的:
EXEC master.dbo.stored_proc_name parm1, ...
并可以替换为:EXEC stored_proc_name parm1, ...
由于EXEC
是默认命令:stored_proc_name parm1, ...
master..
和master.dbo.
之间没有区别。在处理系统存储过程时,它们都是不必要的。
答案 3 :(得分:0)
master指的是master数据库(它是一个System数据库)。
在SSMS中:数据库 - >系统数据库 - >主