Reputation: 22984
Simply, I have this SQL statment:
EXEC xp_cmdshell 'tasklist'
can we order or filter the results by using order by
or where
?
Thanks,
Upvotes: 33
Views: 54132
Reputation: 6252
When running the above query multiple times, you might run into this error: There is already an object named '#MyTempTable' in the database.
To mitigate this you can use a DROP IF EXISTS
statement as follows before creating the temp table
.
IF OBJECT_ID(N'tempdb..#MyTempTable') IS NOT NULL
BEGIN
DROP TABLE #MyTempTable
END
CREATE TABLE #MyTempTable
(OUTPUT VARCHAR(max))
INSERT INTO #MyTempTable
EXEC xp_cmdshell 'tasklist'
SELECT * FROM #MyTempTable WHERE OUTPUT like 'ie%' ORDER BY OUTPUT
Upvotes: 2
Reputation: 22984
I checked jamietre link, and this is the complete answer:
Create table #MyTempTable
(output varchar(max))
INSERT INTO #MyTempTable
EXEC xp_cmdshell 'tasklist'
select * from #MyTempTable where output like 'ie%' order by output
Thanks for all...
Upvotes: 24
Reputation: 24334
You need to output the results into a temporary table first. This should show you how to do it
Insert results of a stored procedure into a temporary table
Upvotes: 20
Reputation: 2516
not directly. You can insert exec into a temp table or table variable and then sort that though
Upvotes: 4