Is there a TSQL statement to configure the output to be Text-Column aligned?
I want to use SQL templates for my coworkers to run some templated UPDATE before/after statements. But when they run the query it needs to output to text and Column delimited
So contrived example say I have this query:
USE master
GO
SELECT *
FROM sys.dm_os_ring_buffers AS dorb
WHERE dorb.timestamp = N'<time, bigint, NULL>'
Is there a some SET statement to configure the output to be Text-Column aligned? This is only for these specific queries otherwise my coworker would want their default settings which is grid. I also can't rely on them to know to change it and that is important because unlike my contrived example they are print commands of sql update before/after statements.
Thus far I think my best bet would be to create a SSMS Add-in but I REALLY do not want to spend time doing that!
Best Answer
No, there is no programmatic way (outside of what you suggested: writing a custom SSMS plug-in) to control SSMS (for the most part). Like most commands,
SET
commands are executed by SQL Server. The only control you could have locally is a subset of the SQLCMD commands --:r
,:setvar
,:connect
, and so on -- but none of those allow for configuring the UI / SSMS.BUT, all hope might not be lost yet. Since you are giving your coworkers T-SQL templates to copy and paste and fill out, and since there are already short-cut keys to toggle between "Results to Grid" and "Results to Text", just add in a few helpful comments to direct them on how to execute the script. Something along the lines of: