OFFICIUM INSERVIO IT
Your reliable partner for your business software...
SSMS Query Output Limits
(alle Versionen/all versions)
Mittwoch, 9. September 2026
Lösung 1: Einstellungen im SQL-Management Studio (SSMS) verändern.
Lösung 2: Gewünschten Wert auf dem SQL-Server in eine temporäre Textdatei exportieren
Solution 1: Changing settings in SQL Management Studio (SSMS)
Solution 2: Exporting the desired value on the SQL Server to a temporary text file
Deutsch
Hintergrund
Im Standard ist die maximale Ausgabelänge im Query Editor beschränkt.
Auch bei einer Umleitung des Outputs in eine Datei oder als Text wird abgeschnitten.
Lösung 1: Einstellungen im SQL-Management Studio (SSMS) verändern.
Ein möglicher Weg ist das "Hochschrauben" der Einstellungen für die Ausgabe-Puffergröße in den SSMS-Optionen.
Für Ergebnisse als Text:
Navigieren Sie im oberen Menü zu Extras und wählen Sie Optionen.
Erweitern Sie die Baumansicht auf Abfrageergebnisse , dann SQL Server, und wählen Sie Ergebnisse als Text.
Suchen Sie die Einstellung für "Maximale Anzahl der in jeder Spalte angezeigten Zeichen".
Der Standardwert ist 256, aber Sie können diesen Wert in älteren Versionen auf 8192 oder in neueren Versionen der Anwendung auf bis zu 10000 erhöhen.
Für Ergebnisse im Raster (oft die Standardeinstellung bei den meisten Anwendern):
Navigieren Sie im oberen Menü zu Extras und wählen Sie Optionen.
Erweitern Sie die Baumansicht auf Abfrageergebnisse, dann SQL Server, und wählen Sie Ergebnisse im Raster.
Unter dem Abschnitt "Maximal abgerufene Zeichen" können Sie das Limit für "Nicht-XML-Daten" erhöhen, das standardmäßig bei 65535 liegt.
Im gleichen Abschnitt können Sie das Limit für "XML-Daten" anpassen, das standardmäßig bei 2 MB liegt, aber bei Bedarf auf Unbegrenzt gesetzt werden kann.
⚠️Wichtig ist, dass Sie nach Übernahme dieser Änderungen und einem Klick auf OK ein neues Abfragefenster öffnen müssen , damit die neuen Limits wirksam werden. Alle bereits geöffneten Abfrage-Registerkarten erzwingen weiterhin die vorherigen Zeichenlimits. Wir empfehlen nach diesen Änderungen immer einen Neustart des Management Studios , um 100% sicherzugehen , da man nicht wissen kann , welche Optionen von Microsoft bei Updates des SSMS irgendwann gecached werden könnten.
Lösung 2: Gewünschten Wert auf dem SQL-Server in eine temporäre Textdatei exportieren
In komplexen Szenarien kommen u.U. Datenmengen zustande , die ein Schreiben in eine Datei verlangen.
Dies ist auch mit SQL-Server-Bordmitteln möglich , sofern "XpCmdShell" aktiviert ist.
Dann kann man sich sehr leicht auch Inhalte von größeren Datenfeldern oder NVARCHAR(MAX)-Variablen sehr leicht in eine Textdatei schreiben , die dann immer aus Sicht der SQL-Server-Installationsmachine ausgeführt werden.
DECLARE @sCmd AS VARCHAR(8000)
DECLARE @sFilePath AS VARCHAR(1000) = 'C:\Temp\Export.txt'
IF OBJECT_ID('tempdb..##TempExport') IS NOT NULL DROP TABLE ##TempExport
CREATE TABLE ##TempExport ( [ExportData] NVARCHAR(MAX) )
INSERT INTO ##TempExport ( [ExportData] )
SELECT
[...my huge data!!]
SET @sCmd = 'bcp "SELECT [ExportData] FROM ##TempExport" queryout "' + @sFilePath + '" -w -T -S ' + @@SERVERNAME
EXEC master..xp_cmdshell @sCmd
IF OBJECT_ID('tempdb..##TempExport') IS NOT NULL DROP TABLE ##TempExport
Die Vorgehensweise ist simpel: Es wird mittels einer einfachen temporären Tabelle gearbeitet , die ein NVARCHAR(MAX)-Feld beinhaltet. In dieses schreiben Sie sich den gewünschten Ausgabeinhalt - siehe Markierung "[...my huge data!!]" im T-SQL-Code.
Mittels "xp_cmdshell" wird das Ganze schnell und einfach auf dem SQL-Server(!) in die dortige Datei "C:\Temp\Export.txt" geschrieben. Vollständig. Mit allen Daten.
English
Background
By default , the maximum output length in the Query Editor is limited.
Even when redirecting the output to a file or as text , it gets truncated by default.
Solution 1: Changing settings in SQL Management Studio (SSMS)
One possible way is increasing the settings for the output buffer size in the SSMS options.
For Results to Text:
Navigate to the top menu and select Tools, then Options.
Expand the tree view to Query Results, then SQL Server, and select Results to Text. Locate the setting for "Maximum number of characters displayed in each column".
The default value is 256, but you can increase this to 8192 in older versions, or up to 10000 in newer releases of the application.
For Results to Grid (often the default setting for most users):
Navigate to the top menu and select Tools, then Options.
Expand the tree view to Query Results, then SQL Server, and select Results to Grid.
Under the "Maximum Characters Retrieved" section, you can increase the limit for "Non-XML data", which defaults to 65535.
In the same section, you can adjust the limit for "XML data", which defaults to 2 MB, but can be set to Unlimited if required.
⚠️Crucially, after applying any of these changes and clicking OK , you must open a new query window for the new limits to take effect. Any query tabs that are already open will continue to enforce the previous character limits. We recommend always restarting Management Studio after these changes to be 100% sure , as one cannot know which options might be cached by Microsoft at some point during SSMS updates.
Solution 2: Exporting the desired value on the SQL Server to a temporary text file
In complex scenarios , data volumes may arise which require writing to a file.
This is also possible using built-in SQL Server tools, provided "XpCmdShell" is activated.
Then one can very easily write the contents of larger data fields or NVARCHAR(MAX) variables to a text file, which is then always executed from the perspective of the SQL Server installation machine.
DECLARE @sCmd AS VARCHAR(8000)
DECLARE @sFilePath AS VARCHAR(1000) = 'C:\Temp\Export.txt'
IF OBJECT_ID('tempdb..##TempExport') IS NOT NULL DROP TABLE ##TempExport
CREATE TABLE ##TempExport ( [ExportData] NVARCHAR(MAX) )
INSERT INTO ##TempExport ( [ExportData] )
SELECT
[...my huge data!!]
SET @sCmd = 'bcp "SELECT [ExportData] FROM ##TempExport" queryout "' + @sFilePath + '" -w -T -S ' + @@SERVERNAME
EXEC master..xp_cmdshell @sCmd
IF OBJECT_ID('tempdb..##TempExport') IS NOT NULL DROP TABLE ##TempExportThe procedure is simple: it works by using a simple temporary table containing an NVARCHAR(MAX) field. Into this, you write the desired output content - see the marker "[...my huge data!!]" in the T-SQL code.
Using "xp_cmdshell", the whole thing is quickly and easily written on the SQL Server(!) into the local file "C:\Temp\Export.txt" there. Completely. With all data.
