आपके पास एक क्वेरी सूची सभी डेटाबेस नहीं हो सकती क्योंकि सूची गतिशील है। आपका सबसे अच्छा दांव sp_msforeachdb
और एक बैच से परिणाम बनाने और उसे वापस करने के लिए कहें:
set nocount on;
create table #result (sid varbinary(85),
server_principal_id int,
database_id int,
database_principal_id int);
exec ms_foreachdb 'insert into #result
(server_principal_id, database_id, database_principal_id)
select s.principal_id,
db_id(''?''),
d.principal_id
from sys.server_principals s
join [?].sys.database_principals d
on s.sid = d.sid;';
select * from #result;
एक बार जब आप एक ही तालिका में सभी सूचनाओं को एकत्रित करने के लिए एक उचित परिणाम सेट आकार का पता लगा लेते हैं, तो आप सर्वर भूमिकाओं और डेटाबेस भूमिकाओं की सदस्यता को शामिल करने के लिए इसे बढ़ा सकते हैं।