Hide Select Output from T-SQL
There are a lot of different ways to do this. 

I don't usually recommend inserting into a #temp table, since any tempdb load or autogrowth may impact the results, and I definitely don't recommend using a @table variable, since modifications to those are forced serial (no parallel plan can be used), which may change actual query times.

Variable Assignment

You can declare a variable and assign your columns to it, like this:

DECLARE @Start datetime
DECLARE @End datetime
DECLARE @blob_eater SQL_VARIANT;

SELECT @StartTimeWA=GETDATE() 

SELECT 
       @blob_eater = [id] 
      ,@blob_eater = [database_id]
      ,@blob_eater = [proc_name]
      ,@blob_eater = [exec_t] from
  [DB].[dbo].[STAT] 

SELECT @End=GETDATE()

SELECT DATEDIFF(MS,@Start,@End) AS [Duration]


Though doing this may prevent some parameter embedding optimizations. See Parameter Sniffing, Embedding, and the RECOMPILE Options under "An Embedding Restriction".

Note that this method may trigger plan warnings about implicit conversions, but they're not the kind you have to worry about. See this Q&amp;A for background: What Triggers This Warning: Type Conversion in Expression May Affect “CardinalityEstimate” in Query Plan Choice.

In SSMS

You can change the settings to discard query results.



SQL Query Stress

SQL Query Stress is an open source tool that allows you to run queries against a SQL Server to simulate load. No query results are returned to the application when they're run.

You can read some instructions on it here.

ostress (RML Utilities)

ostress is a similar tool, published by Microsoft, which also doesn't return results to the client, unless you choose to do it.

I've written some about it here.

Plan Explorer

SentryOne's Plan Explorer is a free alternative to view SQL Server execution plans and deadlocks with. 

You can also use it as a client to query SQL Serve to some degree:



This will also discard results.



Hope this helps!