2017-12-13 3 views
1
declare @Mydoc xml,@tagcomplemento = '</complemento>'; 
select @Mydoc= 
SELECT Impuesto as 'TotalImpuestoTrasladados', 
      (SELECT Importe,TasaCuota AS 'TasaOCuota',TipoFactor,Impuesto 
      FROM CDFIDet 
      FOR XML RAW('cfdi_trasladado'),type,root('cfdi_traslado')) 
    FROM CDFIDet 
    FOR XML RAW('cfdi_impuestos'),type 
select @Mydoc; 
SET @Mydoc.modify(' 
    insert sql:variable("@tagcomplemento") 
    into (/cfdi_comprobante)[1]'); 

위 쿼리의 저장 프로 시저가 있습니다. 내가 그것을 실행하면, 그것은 NULL로 호출 할 수 없습니다 '@Mydoc'의NULL 값을 사용하여 '@Mydoc'의 변형 자 'modify()'를 호출 할 수 없습니다.

남성 5302, 수준 16, 상태 1, 프로 시저 usp_CFDI_Save2XML, 라인 49 뮤 테이터 '(수정)'... 반환 값.

내가 뭘 잘못하고 있니? 유의하십시오, 쿼리를 별도로 실행하면 예상대로 작동하지만 저장 프로 시저에서는 작동하지 않습니다.

+2

제목을 영어로 번역하십시오. –

답변

0

이렇게 @Mydoc을 설정할 수 있습니다.

select @Mydoc= (
SELECT Impuesto as 'TotalImpuestoTrasladados', 
      (SELECT Importe,TasaCuota AS 'TasaOCuota',TipoFactor,Impuesto 
      FROM CDFIDet 
      FOR XML RAW('cfdi_trasladado'),type,root('cfdi_traslado')) 
    FROM CDFIDet 
    FOR XML RAW('cfdi_impuestos'),type) 
관련 문제