![]() |
|
|
|
By: Jugal Shah | Read Comments (5) | Related Tips: More > SQL Server Management Studio |
While working with the Results to Text option in SSMS, you may come across a situation where the output from dynamically generated data is truncated. In this article I will guide you on how to fix this issue and print all the text for the Results to Text option.
SQL Server Management Studio supports query execution results to be displayed in three different ways:
Results to Grid is the default format for SSMS. but in this tip we will use the Results To Text format.
Results to Text format is very useful for the below scenarios:
To get started, we will first change the default Results To Grid format to Results to Text using the below steps.
Step 1
In SQL Server Management Studio, under the Tools menu, click Options as shown in the image below:

Step 2
In the Options dialog box, expand Query Results, expand SQL Server and then select General as shown in the image below. In the right side panel choose Results To Text option from the Default destination for results drop down list.
Click OK to save the changes as shown in the image below. The changes will go into effect once you open a New Query window.

Another way to change the Results to text option is go to View > Toolbars > select SQL Editor (If not selected). Then select the below highlighted button to enable Results To Text option. You can also use the shortcut CTRL+T.

In the below query I am generating the output query for the log-shipping monitor, but it is not showing the full output. You can see that the output command that I am dynamically generating is getting cut off. The reason for this is that the default Results to Text option's maximum number of characters displayed is set to 256 characters. That's why the rest of the text output is truncated.

To prevent truncation of the output for the Results to Text option, you have to change the Maximum number of characters displayed in each column option to 8192 as shown below.
In the Options dialog box of Tools Menu, expand Query Results, expand SQL Server and then select Results to Text as shown in the image below. In the right side panel change the value of Maximum number of characters displayed in each column to 8192. Click OK to save the changes as shown in the image below. The changes will go into effect once you open a new query window.

Changing the Maximum Number of characters displayed in each column from the Query menu will give you advantage of setting the maximum characters for the current query window only. The Query menu only appear in SSMS if you have a Query window open and the window is active. If you have selected the Object Explorer Pane or other options, the Query menu will not appear.
To change the max characters setting for the Results to Text options using the Query menu, first you have to click on the Query window, click on Query menu and go to Query Options... as shown below.

In the Query Options... window click on Result > Text and change the Maximum Number of characters displayed in each column to 8192.

Executing the query again will show the full output without truncation.

| Wednesday, November 14, 2012 - 7:38:53 AM - Siva Prasad | Read The Tip |
|
Hi Jugal, nice article bro. can you explain me the reasons why do we actually have to change the execution results to 'Results to Text' from the default 'Results to Grid'. i know only one reason for it. it is only because of memory issue since Results to Grid consumes more memory. can you give me any other reasons why we have to change the Execution results from default value?
Regards, Siva Prasad
|
|
| Wednesday, November 14, 2012 - 10:44:21 AM - Jugal | Read The Tip |
|
|
| Wednesday, November 14, 2012 - 5:48:45 PM - sam | Read The Tip |
|
Great post. Can you please let me know what do I do if I want to print the results to text with more than 8192 characters. |
|
| Friday, November 16, 2012 - 8:55:18 AM - Eilert Hjelmeseth | Read The Tip |
|
Siva, results to text maintains line breaks and tabs (e.g., CHAR(10) or CHAR(9))
Sam, to print results to text with more than 8192 characters, I typically do results to grid but cast it as XML (beware of any potential <> characters in the results...).The below example should return 10,000 lines when casting as xml, but if you don't cast to xml and just do results to text you won't get all the data.
I believe this method has a cap on it as well but I've never reached it.
DECLARE @text NVARCHAR(MAX); |
|
| Saturday, November 17, 2012 - 2:36:22 PM - Deron S Dilger | Read The Tip |
|
When I need to output column values for text outputs larger than the 8192 character limit I use "output to text file." But I do believe this still introduces a carriage-return+linefeed (aka CrLf) into the data at the same point. I then manually clean those with a regex in my text editor. |
|
|
privacy | disclaimer | copyright | advertise | about authors | contribute | feedback | giveaways | user groups Some names and products listed are the registered trademarks of their respective owners. Edgewood Solutions LLC | MSSharePointTips.com | MSSQLTips.com |