TSQL - сделать запрос по набору результатов из хранимой процедуры - PullRequest
0 голосов
/ 17 июля 2010

Скажем, если вы используете sp_helplognis, хотите просмотреть набор результатов с фильтром UserName=db_owner. Есть ли способ, кроме вывода исходного результирующего набора во временную таблицу, а затем запрос к этой временной таблице? Благодаря.

Ответы [ 2 ]

3 голосов
/ 17 июля 2010

Не использовать sp_helplogins: используйте sys.server_principals

SELECT * FROM  sys.server_principals WHERE name = 'bob'

Если вам нужен 2-й набор результатов sp_helplogins, вам придется использовать c # или что-то еще, потому что загрузка временной таблицы будет только перехватывать 1-й набор результатов.

Эквивалент sys.server_principals равен sys.database_principals тоже

К вашему сведению: db_owner уже есть в каждой базе данных. Что ты на самом деле пытаешься сделать ...?

Редактировать после комментария что-то вроде:

EXEC sp_MSForEachDb '
USE ?
IF DATABASE_PRINCIPAL_ID (''myloginname'') IS NOT NULL
  EXEC sp_addrolemember ''db_datareader'', ''myloginname''
'
1 голос
/ 17 июля 2010

Вы можете перенаправить набор результатов sproc в новую таблицу, например,

create table #results (...)
insert into #results execute myproc
select * from #results where ...

Это немного сложновато, потому что вы должны довольно точно перепроектировать типы данных набора результатов, чтобы избежать ошибок приведения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...