Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

В SQL Server 2005, как мога да напиша заявка за изброяване на всички данни за влизане, тяхната сървърна роля, съответстващ потребител във всички db, db роля?

Не можете да имате една заявка за списък с всички бази данни, защото списъкът е динамичен. Най-добре е да използвате 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;

Можете да разширите това, за да включите ролите на сървъра и ролите на базата данни, след като измислите подходяща форма на набор от резултати, за да обедините цялата тази информация в една таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL:търсене на низ във всяка колона с varchar в база данни

  2. заменете NULL с празна стойност или нула в sql сървъра

  3. Как да изпълним съхранена процедура в заявка за избор

  4. Как да се свържете с SQL Server по подразбиране инстанция и SQL Server наименувани екземпляри - SQL Server / TSQL Урок, част 2

  5. Как да отмените заявка за актуализация на SQL Server?