sql >> Databáze >  >> RDS >> Sqlserver

Jak zobrazím úplný obsah textového nebo varchar(MAX) sloupce v SQL Server 2008 Management Studio?

SSMS umožňuje neomezená data pouze pro data XML. Toto není výchozí nastavení a musí být nastaveno v možnostech.

Jeden trik, který by mohl fungovat za poměrně omezených okolností, je jednoduše pojmenovat sloupec speciálním způsobem, jak je uvedeno níže, aby se s ním zacházelo jako s daty XML.

DECLARE @S varchar(max) = 'A'

SET @S =  REPLICATE(@S,100000) + 'B' 

SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]

V SSMS (alespoň verze 2012 až aktuální 18.3) se zobrazí výsledky, jak je uvedeno níže

Kliknutím na něj otevřete úplné výsledky v prohlížeči XML. Posouváním doprava ukazuje, že poslední znak B je zachován,

To však přináší některé významné problémy. Přidání dalších sloupců do dotazu přeruší účinek a všechny další řádky se zřetězí s prvním. Konečně, pokud řetězec obsahuje znaky jako < otevření prohlížeče XML se nezdaří s chybou analýzy.

Robustnější způsob, jak toho dosáhnout, který se vyhýbá problémům s převodem SQL Serveru < na < atd. nebo selhání kvůli těmto znakům je uvedeno níže (zde uveďte Adam Machanic).

DECLARE @S varchar(max)

SELECT @S = ''

SELECT @S = @S + '
' + OBJECT_DEFINITION(OBJECT_ID) FROM SYS.PROCEDURES

SELECT @S AS [processing-instruction(x)] FOR XML PATH('')


  1. Připojení k databázi pomocí PHP

  2. Předat hodnoty načtené ze souboru jako vstup do SQL dotazu v Oracle

  3. Použijte prostorová rozšíření MySQL k výběru bodů uvnitř kruhu

  4. Jak převést postgresovou databázi na sqlite