2010-10-29 72 views

回答

1

您可以使用OPENROWSET按照this question完成此操作。

sp_configure 'Show Advanced Options', 1 
GO 
RECONFIGURE 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1 
GO 
RECONFIGURE 
GO 

SELECT * INTO #MyTempTable FROM OPENROWSET('SQLNCLI', 'Server=(local)\SQL2008;Trusted_Connection=yes;', 
    'EXEC sp_who') 

SELECT * FROM #MyTempTable order by [dbname] 

如果因任何原因而無法使用OPENROWSET,那麼你將要創建的sp_who輸出完全匹配一個臨時表。

e.g

Create Table #temptable 
(
spid smallint, 
ecid smallint, 
status varchar(100), 
loginame varchar(100), 
hostname varchar(100), 
blk smallint, 
dbname varchar(100), 
cmd varchar(100), 
request_id smallint 
) 

Insert Into #temptable 
Exec sp_who 

Select * From #temptable order by [dbname] 
1

如果可能,最好的解決方案是嘗試將過程重構爲視圖。

編輯

你也可以修改程序的輸出粘到一個臨時表,然後你可以查詢。

如果您只打算按dbname進行排序,最簡單的解決方案是將過程修改爲始終按dbname排序。

+0

@我是一個女孩,它取決於程序代碼,一些簡單的採購可以變成一個視圖,但最複雜的採購不能。 – mikerobi 2010-10-29 14:57:15

1

運行:

exec sp_helptext sp_who 

這會給你使用SQL。將其複製到新的查詢窗口中並添加ORDER BY子句。