Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyświetlić pełną zawartość kolumny tekstowej lub varchar(MAX) w programie SQL Server 2008 Management Studio?

SSMS zezwala tylko na nieograniczoną ilość danych dla danych XML. Nie jest to ustawienie domyślne i należy je ustawić w opcjach.

Jedna sztuczka, która może zadziałać w dość ograniczonych okolicznościach, to po prostu nazwanie kolumny w specjalny sposób, jak poniżej, aby była traktowana jako dane XML.

DECLARE @S varchar(max) = 'A'

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

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

W SSMS (przynajmniej wersje 2012 do obecnej wersji 18.3) wyświetla wyniki jak poniżej

Kliknięcie go otwiera pełne wyniki w przeglądarce XML. Przewijanie w prawo pokazuje, że ostatni znak B jest zachowany,

Jednak to ma kilka istotnych problemów. Dodanie dodatkowych kolumn do zapytania przerywa efekt i wszystkie dodatkowe wiersze zostają połączone z pierwszym. Wreszcie, jeśli ciąg zawiera znaki, takie jak < otwarcie przeglądarki XML kończy się niepowodzeniem z błędem parsowania.

Bardziej niezawodny sposób na zrobienie tego, który pozwala uniknąć problemów z konwersją SQL Server < do < itp. lub niepowodzenie z powodu tych postaci znajduje się poniżej (tutaj Adam Machonic).

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Serwer SQL 2016

  2. Jak wstawić wiele rekordów i uzyskać wartość tożsamości?

  3. Błąd krytyczny PHP:wywołanie niezdefiniowanej funkcji mssql_connect()

  4. Błąd systemu operacyjnego SQL Server 5:5 (odmowa dostępu).

  5. Zdarzenia oczekiwania serwera SQL -1