存储过程如何检索正在运行的数据库的名称?

时间:2009-07-13 22:21:26

标签: sql-server

我有一个可以在多个数据库中运行的存储过程,并且存储过程的功能需要根据数据库略有不同。我一直在网上看书,看着系统表,看看它是否在某处,但到目前为止还没有快乐。

如果它存在的话,必须有一个人碰巧知道这个。

2 个答案:

答案 0 :(得分:5)

SELECT db_name()

应该这样做。文档为here

答案 1 :(得分:1)

一个过程总是在它所在的数据库中运行。调用EXEC <dbfoo>..<procname><dbfoo>的转换上下文完全相同,然后执行<procname>

如果您有多个程序,每个数据库中有一个程序,那么您可以在每个数据库上相应地更改程序,或使用DB_NAME()获取当前数据库。