Обработка результатов хранимых процедур

На примере sp_who

Определение с technet:
Предоставляет сведения о текущих пользователях, сеансах и процессах в экземпляре компонента Microsoft Компонент SQL Server Database Engine. Данные могут быть отфильтрованы, чтобы возвращать только те процессы, которые не простаивают, принадлежат конкретному пользователю или принадлежат определенному сеансу.
http://technet.microsoft.com/ru-ru/library/ms174313.aspx

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

declare @test table 
(
	spid int,
	ecid int,
	[status] nvarchar(50),
	loginame nvarchar(100),
	hostname nvarchar(100),
	blk int,
	dbname nvarchar(100),
	cmd nvarchar(max),
	request_id int
)

insert into @test exec sp_who

select * from @test


Для того, чтобы узнать необходимые поля будущей табличной переменной требуется выполнить хранимую процедуру — exec sp_who
Собственно, метод совершенно не догматичен, но вполне может помочь в работе с хранимыми процедурами.

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.