programing

T-SQL에서 디버그 시간에 테이블 변수의 값을 보는 방법은 무엇입니까?

elecom 2023. 8. 11. 21:31
반응형

T-SQL에서 디버그 시간에 테이블 변수의 값을 보는 방법은 무엇입니까?

디버그 시간 동안 SQL Server Management Studio(SSMS)의 테이블 값 변수에서 값(행 및 셀)을 볼 수 있습니까?만약 그렇다면, 어떻게?

enter image description here

DECLARE @v XML = (SELECT * FROM <tablename> FOR XML AUTO)

표의 내용을 보려는 지점에 위의 문을 삽입합니다.테이블의, "" "" "" XML" "" "" "" ""을 할 수 .@v시계 창으로.

enter image description here

Microsoft Connect 링크에 따라 아직 구현되지 않았습니다.

프로젝트 https://github.com/FilipDeVos/sp_select 에는 저장 프로시저가 있습니다.sp_select임시 테이블에서 선택할 수 있습니다.

용도:

exec sp_select 'tempDb..#myTempTable'

저장 프로시저를 디버깅하는 동안 새 탭을 열고 이 명령을 실행하여 임시 테이블의 내용을 볼 수 있습니다.

저장 프로시저에서 글로벌 임시 테이블 ##temptable을 만들고 저장 프로시저 내에 테이블의 데이터를 이 임시 테이블에 삽입하는 삽입 쿼리를 작성합니다.

이렇게 하면 새 쿼리 창을 열어 임시 테이블의 내용을 확인할 수 있습니다."##temptable에서 * 선택"을 사용하면 됩니다.

SQL Server 2016 이상을 사용하는 경우 JSON 결과로 선택하여 JSON Visualizer에 표시할 수도 있습니다. XML보다 읽기가 훨씬 쉬우며 결과를 필터링할 수 있습니다.

DECLARE @v nvarchar(max) = (SELECT * FROM Suppliers FOR JSON AUTO)

enter image description here

플러그인 없이는 불가능하다는 결론에 도달했습니다.

SQL Server Profiler 2014에는 테이블 값 매개 변수의 내용이 나열됩니다.이전 버전에서도 작동할 수 있습니다.Stored Procedures 그룹 및 TextData 열에서 SP:Starting or RPC:Completed 이벤트를 활성화합니다. 로그에서 항목을 클릭하면 테이블 변수에 대한 삽입 문이 나타납니다.그런 다음 텍스트를 복사하여 Management Studio에서 실행할 수 있습니다.

샘플 출력:

declare @p1 dbo.TableType
insert into @p1 values(N'A',N'B')
insert into @p1 values(N'C',N'D')

exec uspWhatever @PARAM=@p1

표를 선택하고 변수를 그런 식으로 보는 것이 어떻습니까?

SELECT * FROM @d

여러분, 제가 파티에 조금 늦었지만 나중에 이 질문을 우연히 발견한 사람에게 저장된 절차에서 이를 수행하는 가장 쉬운 방법은 다음과 같습니다.

  1. 절차 매개 변수가 선언되고 맨 위에서 초기화된 새 쿼리를 만듭니다.
  2. 절차 본문에 붙여넣습니다.
  3. 테이블 변수가 데이터로 초기화된 후 즉시 오래된 선택 쿼리를 추가합니다.
  4. 3이 절차의 마지막 문이 아닌 경우 동일한 줄에 중단점을 설정하고 디버깅을 시작한 후 중단점으로 바로 이동합니다.
  5. 이익!!

메시19의 대답은 승인된 IMHO여야 합니다. 왜냐하면 그것은 나보다 간단하고 대부분의 시간을 수행하기 때문입니다. 하지만 만약 당신이 나와 같고 당신이 검사하고 싶은 루프 안에 테이블 변수가 있다면, 이것은 큰 노력이나 외부 SSMS 플러그인 없이 그 일을 잘 수행합니다.

언급URL : https://stackoverflow.com/questions/1900857/how-to-see-the-values-of-a-table-variable-at-debug-time-in-t-sql

반응형