Попробуйте
SELECT @caller = OBJECT_NAME(@@PROCID)
РЕДАКТИРОВАТЬ: После того, как вы получили текущий proc.name, передайте его в log sp в качестве параметра, вот и все.
Это работает только внутри хранимой процедуры.
Пример использования этого
USE AdventureWorks;
GO
IF OBJECT_ID ( 'usp_FindName', 'P' ) IS NOT NULL
DROP PROCEDURE usp_FindName;
GO
CREATE PROCEDURE usp_FindName
@lastname varchar(40) = '%',
@firstname varchar(20) = '%'
AS
DECLARE @Count int;
DECLARE @ProcName nvarchar(128);
SELECT LastName, FirstName, Phone, EmailAddress
FROM Person.Contact
WHERE FirstName LIKE @firstname AND LastName LIKE @lastname;
SET @Count = @@ROWCOUNT;
SET @ProcName = OBJECT_NAME(@@PROCID);
RAISERROR ('Stored procedure %s returned %d rows.', 16,10, @ProcName, @Count);
GO
EXECUTE dbo.usp_FindName 'P%', 'A%';
Подробнее об этом
http://msdn.microsoft.com/en-us/library/ms174408(SQL.90).aspx
Пример ведения журнала хранимых процедур.Может быть полезно
http://weblogs.sqlteam.com/brettk/archive/2006/09/21/12391.aspx
Вот еще один связанный с этим вопрос
Может ли хранимая процедура MS / Transact-SQL искать свое собственное имя?
РЕДАКТИРОВАТЬ 2: и другие связанные вопросы в SO
Найти хранимую процедуру вызова в SQL Server