O que faz com que seja legal passar um nome de objeto para o procedimento armazenado do sistema sp_helptext
?
Qual mecanismo converte o nome do objeto em uma string?
por exemplo
-- works
sp_helptext myproc
sp_helptext [myproc]
sp_helptext [dbo.myproc]
-- and behaves the same as a string
sp_helptext 'myproc'
sp_helptext 'dbo.myproc'
-- does not work
sp_helptext dbo.myproc -- Msg 102, Level 15, State 1, Line 1 incorrect syntax near '.'
-- an additional case that does not work.
sp_helptext [dbo].[myproc] -- Msg 102, Level 15, State 1, Line 1 incorrect syntax
Parece estranho que eu não seja obrigado a colocar aspas simples em nomes de procedimentos válidos, a menos que tenha um nome de .
esquema e nome de procedimento separados. Estou procurando uma explicação de como ele é convertido automaticamente de um nome entre aspas para uma string literal a ser passada como o valor do parâmetro.
Não tenho um problema específico para resolver; Estou simplesmente curioso sobre coisas que não estão documentadas.