2010-11-27 4 views
1

하나의 프로 시저에서 다른 프로 시저로 XML 형식 변수를 전달하고 있습니다. 나는이 전송되었습니다 얼마나 많은 열을 알 것입니다 방법 SQL Server 2005에서 XML 변수의 열 수를 알 수있는 방법

set @XMLDOC = (select 60 as RecordDetailID,    
         '' as ItemText,    
         '' as ItemNote,    
         0 as DisplayOrder, 
         1 as Status 
       FOR XML RAW) 

아래처럼 다른 프로 시저에 하나의 '상태'항목을 보낼 필요가 일부 경우이

Declare @XMLDOC XML 

set @XMLDOC = (select 60 as RecordDetailID,    
         '' as ItemText,    
         '' as ItemNote,    
         0 as DisplayOrder       
       FOR XML RAW) 

같은

설정 XML 변수 내 XML 유형 변수에?

답변

2

당신은 XML 속성을 계산하기 위해 nodes() 방법을 사용할 수 있습니다 :

select count(1) from @XMLDOC.nodes('row/@*') as T(c); 
+0

덕분에 나를 위해 유용 많이. 지식을 위해서 count (1)의 의미는 무엇입니까? – KuldipMCA

+0

@KuldipMCA,'count (1)'은 PL/SQL의 아티팩트입니다. PL/SQL은'count (*) '를 사용하면 메모리의 모든 행을 계산하기 전에 성능을 향상시킵니다. T-SQL에는이 문제가 없으므로 두 형식 모두 동등하므로 습관적으로'count (1) '만 사용했습니다. http://social.msdn.microsoft.com/Forums/en-US 참조/transactsql/thread/9367c580-087a-4fc1-bf88-91a51a4ee018 /. –

관련 문제