我可以获取调用存储过程的数据库的ID /名称吗?

时间:2018-04-12 07:28:34

标签: sql sql-server database tsql stored-procedures

我有一个存储过程(日志记录过程),所有其他存储过程都会执行以记录它们的使用。 现在我想添加正在登录的存储过程所在的数据库。 我想获取数据库的ID或名称,以执行日志记录过程中的日志记录过程。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用DB_NAME()检索当前数据库名称。您应该将它作为参数传递给您的日志记录过程。

USE Database1

SELECT 
    CurrentDatabase = DB_NAME()
-- CurrentDatabase = Database1

USE Database999

SELECT 
    CurrentDatabase = DB_NAME()
-- CurrentDatabase = Database999
DECLARE @CurrentDatabase VARCHAR(100) = DB_NAME()

EXEC LogDatabase.dbo.LoggingProcedure
    @DatabaseName = @CurrentDatabase
    -- OtherParameters

答案 1 :(得分:0)

我认为没有其他方法可以修改procs来执行此操作,最好的方法是在客户端procs上使用DB_NAME