SP プロシージャ (以下のコードを参照) で実際のデータベースのデータベース ユーザーを出力したいのですがsp_PrintUsers
、何らかの理由で master のデータベース ユーザーが出力されます。データベース レベルの SQL ステートメントが実際のデータベースで実行されるという事実にもかかわらず、すべてのデータベース レベルのビューに対する SP プロシージャの一般的な動作のようです。DB_NAME
明らかにマスターではないことを出力すると、何が問題なのですか?
回避策はありますか?
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