我想在 SP 过程中打印出实际数据库的数据库用户(参见sp_PrintUsers
下面的代码),但是,由于某种原因,它会打印出 master 的数据库用户。尽管事实上任何数据库级 SQL 语句都在实际数据库中执行,但这似乎是所有数据库级视图的 SP 过程的一般行为。如果我们打印出来DB_NAME
显然不是master,那么有什么问题呢?
有什么解决方法吗?
use [master]
go
create procedure sp_PrintUsers
as
begin
SELECT DB_NAME() AS DataBaseName
select name from sys.database_principals;
end
go
use [actual_database]
go
exec sp_PrintUsers