• The explanation is wrong.

    Explanation: "SQL Server uses the sp_ prefix to designate system stored procedures... A user-defined stored procedure that has the same name as a system stored procedure and is either nonqualified or is in the dbo schema will never be executed; the system stored procedure will always execute instead."

    http://msdn.microsoft.com/en-us/library/ms190669.aspx%5B/quote%5D

    Just because you create a procedure in master that is named sp_ does not make it a system stored procedure. I am still very angry at MS for taking away the ability to create system functions in 2k5.

    In the example the only reason the sproc in master is executed is that the local procedure was in a non-default schema.

    This is why people without Adventure Works were getting different results.