특정 조건에서 폭탄을 사용하는 일부 동적 SQL 문이 있으므로 디버깅하려고합니다. 그것과 같이 내장됩니다 :SQL Server 2008에서 긴 동적 SQL 디버깅
declare @sql varchar(4000);
...
select @sql = '<part1>';
...
select @sql = @sql + '<part2>';
...
select @sql = @sql + '<part3>';
...
begin
execute(@sql);
select @ec__errno = @@error
if @ec__errno != 0
begin
if @@trancount != 0
begin
rollback;
end
return @ec__errno;
end;
...
내가 말했듯이, 그것은 루프의 특정 반복 (가 다음과 같이 구현됩니다 왜 그냥 버그를 수정하고, 저를 요구하지 않음)에서 폭탄과 나는 데 시계 창에 문자열의 내용을 표시하는 데 어려움이 있습니다. 나는 처음 255 문자 만 얻고 있다고 생각한다. substring(@sql, 0, 200)
의 결과는 'substring(@sql,0,200)' could not be evaluated
입니다. 도와주세요. 나는 하위 문자열을 0에서 199, 200에서 399까지 보는 것을 희망하고 있었다. 그리고 나서이 것을 하나로 모아서 마침내 디버깅하기를 바랬다.
나는 당신에게서 포인터를 평가할 것입니다. 감사!
을 당신이 동적 SQL은 종종 나쁜 생각 하나의 이유를 발견보세요! – HLGEM
분명히 그런 식으로 보일지 모르지만 틀림없이 경직된 SQL은 읽기가 더 어려울 때가 있습니다 :) - SQL 테이블에 쌓인 다양한 모양의 나무와 같은 것들로 작업하는 것을 상상해보십시오. –
나는 그다지 읽을 수 없다는 것을 의미하지 않았다. 단지 디버깅하는 데 어려움이 있었고 가능한 모든 조건에서 디버깅하는 것이 불가능하다는 것을 의미했다. – HLGEM