我執行的結果:排序過程的SQL Server 2008中
exec sp_who
go
是否有可能通過這樣的字段進行排序?
exec sp_who order by dbname
go
我該如何做到這一點?
我執行的結果:排序過程的SQL Server 2008中
exec sp_who
go
是否有可能通過這樣的字段進行排序?
exec sp_who order by dbname
go
我該如何做到這一點?
您可以使用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]
如果可能,最好的解決方案是嘗試將過程重構爲視圖。
編輯
你也可以修改程序的輸出粘到一個臨時表,然後你可以查詢。
如果您只打算按dbname進行排序,最簡單的解決方案是將過程修改爲始終按dbname排序。
@我是一個女孩,它取決於程序代碼,一些簡單的採購可以變成一個視圖,但最複雜的採購不能。 – mikerobi 2010-10-29 14:57:15
運行:
exec sp_helptext sp_who
這會給你使用SQL。將其複製到新的查詢窗口中並添加ORDER BY
子句。
沒有說「我是個男人」就像擁有這樣的用戶名! – 2010-10-29 14:54:59
你很聰明.. – 2010-10-29 14:55:37