Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để xem toàn bộ nội dung của cột văn bản hoặc varchar (MAX) trong SQL Server 2008 Management Studio?

SSMS chỉ cho phép dữ liệu không giới hạn đối với dữ liệu XML. Đây không phải là mặc định và cần được đặt trong các tùy chọn.

Một thủ thuật có thể hoạt động trong những trường hợp khá hạn chế là chỉ cần đặt tên cột theo một cách đặc biệt như bên dưới để nó được coi là dữ liệu XML.

DECLARE @S varchar(max) = 'A'

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

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

Trong SSMS (ít nhất là phiên bản 2012 đến hiện tại là 18.3), điều này hiển thị kết quả như bên dưới

Nhấp vào nó sẽ mở ra toàn bộ kết quả trong trình xem XML. Cuộn sang phải cho thấy ký tự cuối cùng của B được giữ nguyên,

Tuy nhiên, điều này có một số vấn đề đáng kể. Việc thêm các cột bổ sung vào truy vấn sẽ phá vỡ hiệu ứng và các hàng bổ sung đều được nối với hàng đầu tiên. Cuối cùng nếu chuỗi chứa các ký tự như < mở trình xem XML không thành công với lỗi phân tích cú pháp.

Một cách mạnh mẽ hơn để thực hiện việc này để tránh các vấn đề về chuyển đổi máy chủ SQL < tới &lt; vv hoặc không thành công do các ký tự này ở bên dưới (ghi có Adam Machanic tại đây).

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. Lỗi máy chủ SQL 4104:Không thể liên kết số nhận dạng nhiều phần.

  2. Đổi tên Tài khoản SA trong SQL Server (Ví dụ T-SQL)

  3. Thống kê IO Tệp Hiệu suất Máy chủ SQL

  4. Truy vấn SQL Server Xml với nhiều không gian tên

  5. Nhà cung cấp Microsoft OLE DB cho SQL Server có hỗ trợ TLS 1.2 không