如果我执行带有前缀dbo的存储过程是否重要?

Pea*_*key 2 sql-server-2008

在执行存储过程时我被告知,我应该包括prefox dbo例如

exec dbo.'name_of_stored_procedure'

  • 如果我不包含前缀,这有关系吗?
  • 我什么时候应该使用前缀?

Aar*_*and 8

如果您的存储过程在dbo架构中,那么您应该说:

EXEC dbo.name_of_procedure;
Run Code Online (Sandbox Code Playgroud)

指定架构的优点:

  • 你知道你正在调用dbo.procedure,即使还有some_other_schema.procedure
  • 查询引擎不必首先检查类似命名对象的默认架构
  • 你没有得到不可预测的结果(例如,如果你的架构中有一个,但你的意思是 dbo)
  • 如果每个人都一直使用模式,那么您有更好的机会重新使用查询计划

用于指定架构的缺点:

  • 你输入额外的四个字符

还有什么不买你是明确的?