标签: sql-server
我有一个可以在多个数据库中运行的存储过程,并且存储过程的功能需要根据数据库略有不同。我一直在网上看书,看着系统表,看看它是否在某处,但到目前为止还没有快乐。
如果它存在的话,必须有一个人碰巧知道这个。
答案 0 :(得分:5)
SELECT db_name()
应该这样做。文档为here。
答案 1 :(得分:1)
一个过程总是在它所在的数据库中运行。调用EXEC <dbfoo>..<procname>与<dbfoo>的转换上下文完全相同,然后执行<procname>。
EXEC <dbfoo>..<procname>
<dbfoo>
<procname>
如果您有多个程序,每个数据库中有一个程序,那么您可以在每个数据库上相应地更改程序,或使用DB_NAME()获取当前数据库。