[sql-server] SSMS에서 ntext 또는 nvarchar (max)의 모든 텍스트를 어떻게 봅니까?

SQL Server Management Studio에서 NTEXT 또는 NVARCHAR (max)의 모든 텍스트를 어떻게 봅니까? 기본적으로 처음 몇 백 자 (255?) 만 반환하는 것처럼 보이지만 때로는 프로그램을 작성하지 않고도 전체 필드를 빠르게 볼 수있는 방법을 원할 때가 있습니다. SSMS 2012조차도 여전히이 문제가 있습니다.



답변

옵션 (쿼리 결과 / SQL Server / 그리드 페이지에 대한 결과)

현재 쿼리의 옵션을 변경하려면 쿼리 메뉴에서 쿼리 옵션을 클릭하거나 SQL Server 쿼리 창에서 마우스 오른쪽 단추를 클릭하고 쿼리 옵션을 선택하십시오.

검색된 최대 문자
각 셀에 표시 될 최대 문자 수를 지정하려면 1에서 65535 사이의 숫자를 입력하십시오.

보시다시피 최대 값은 64k입니다. 기본값은 훨씬 작습니다.

텍스트에 대한 BTW 결과 에는 훨씬 더 엄격한 제한이 있습니다.

각 열에 표시되는 최대 문자
수이 값의 기본값은 256입니다. 자르지 않고 더 큰 결과 집합을 표시하려면이 값을 늘리십시오. 최대 값은 8,192입니다.


답변

NVARCHAR (MAX) 열에서 전체 텍스트 (99,208 자)를 열에서 해당 열만 (결과 그리드)를 선택한 다음 마우스 오른쪽 단추를 클릭하고 결과를 CSV 파일로 저장하여 전체 텍스트 (99,208 자)를 얻을 수있었습니다. 결과를 보려면 텍스트 편집기 (Excel 아님)로 CSV 파일을여십시오. 재미있게도 동일한 쿼리를 실행하려고했지만 결과를 파일로 설정하면 결과 대 텍스트 제한을 사용하여 출력이 잘 렸습니다.

@MartinSmith가 (현재) 승인 된 답변에 대한 설명으로 설명 한 해결 방법이 저에게 효과적이지 않습니다 ( ‘[‘문자, 16 진수 값 0x5B에 대해 불평하는 전체 XML 결과를 보려고 할 때 오류가 발생했습니다) 이름에 포함 “).


답변

빠른 트릭

SELECT CAST('<A><![CDATA[' + CAST(LogInfo as nvarchar(max)) + ']]></A>' AS xml)
FROM Logs
WHERE IDLog = 904862629


답변

SSMS 용 추가 기능을 작성했으며이 문제가 해결되었습니다. 다음 두 가지 방법 중 하나를 사용할 수 있습니다.

“현재 셀 1 : 1 복사”를 사용하여 원본 셀 데이터를 클립 보드에 복사 할 수 있습니다.

http://www.ssmsboost.com/Features/ssms-add-in-copy-results-grid-cell-contents-line-with-breaks원본 셀 내용 복사

또는 “셀 시각화 도구”기능을 사용하여 외부 텍스트 편집기 (메모장 ++ 또는 메모장)에서 셀 내용을 열 수도 있습니다. http://www.ssmsboost.com/Features/ssms-add-in-results-grid-visualizers

(기능을 사용하면 외부 응용 프로그램에서 필드 내용을 열 수 있으므로 텍스트임을 알고 있다면 텍스트 편집기를 사용하여 열 수 있습니다. 내용이 그림과 함께 이진 데이터 인 경우 그림으로보기를 선택합니다. 아래 샘플은 그림 열기를 보여줍니다. ) :SSMS 결과 그리드 시각화 도구


답변

데이터를 XML로 반환

SELECT CONVERT(XML, [Data]) AS [Value]
FROM [dbo].[FormData]
WHERE [UID] LIKE '{my-uid}'

예상 결과에 따라 SSMS 옵션 창에서 적절한 제한을 설정하십시오.
여기에 이미지 설명을 입력하십시오

당신이 반환하고 텍스트와 같은 인코딩되지 않은 문자를 포함하지 않는 경우에 작동 &대신 &amp;하는 XML 변환이 실패 할 것입니다.

PowerShell을 사용하여 데이터 반환

이를 위해서는 명령을 실행할 시스템에 PowerShell SQL Server 모듈이 설치되어 있어야합니다.

모두 설정 되었으면 다음 스크립트를 구성하고 실행하십시오.

Invoke-Sqlcmd -Query "SELECT [Data] FROM [dbo].[FormData] WHERE [UID] LIKE '{my-uid}'" -ServerInstance "database-server-name" -Database "database-name" -Username "user" -Password "password" -MaxCharLength 10000000 | Out-File -filePath "C:\db_data.txt"

-MaxCharLength매개 변수를 필요에 맞는 값으로 설정하십시오 .


답변

대안 1 : 마우스 오른쪽 버튼으로 셀을 복사하고 텍스트 편집기에 붙여 넣기 (utf-8 지원)

대안 2 : 마우스 오른쪽 버튼을 클릭하고 CSV 파일로 내보내기

대안 3 : SUBSTRING 기능을 사용하여 컬럼의 일부를 시각화하십시오. 예:

id = 123456 인 mytable에서 SUBSTRING (fileXml, 2200,200)을 선택하십시오.


답변

당신이 그것을 볼 필요가 있다면, 나는 이것을 사용했습니다 :

print cast(dbo.f_functiondeliveringbigformattedtext(seed) as text)

결과적으로 SMSS의 메시지 창에 줄 바꿈과 모든 내용이 표시됩니다. 물론 단일 셀만 허용합니다. 여러 행에서 단일 셀을 수행하려면 다음을 수행하십시오.

declare @T varchar(max)=''
select @T=@T
       + isnull(dbo.f_functiondeliveringbigformattedtext(x.a),'NOTHINGFOUND!')
       + replicate(char(13),4)
from x -- table containing multiple rows and a value in column a
print @T

이것을 사용하여 SQL 코드로 생성 된 JSON 문자열의 유효성을 검사합니다. 그렇지 않으면 읽기가 너무 어렵습니다!