2014-08-29 2 views
0

xslt (XML (.), null이 아님)로 설정된 테이블이 있습니다.테이블에 로컬 XML 파일을 선택하십시오.

지금은 일반 문자열을 사용하여 설정했습니다. 이처럼 :

UPDATE table 
SET xslt = 
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
<xsl:template match="/"> 
<html> 
    <head> 
    <title> Results date with no risk </title> 
    </head> 
    <body> 
    <xsl:apply-templates /> 
    </body> 
</html> 
</xsl:template> 
<xsl:template match="data"> 
<table width="400" border="1"> 
    <tr bgcolor="#a0acbc"> 
    <td>KplusId</td> 
    <td>strUser</td> 
    <td>strName</td> 
    <td>strPosName</td> 
    </tr> 
    <xsl:for-each select="row"> 
    <tr> 
     <td> 
     <xsl:value-of select="KPlusId" /> 
     </td> 
     <td> 
     <xsl:value-of select="strUser" /> 
     </td> 
     <td> 
     <xsl:value-of select="strName" /> 
     </td> 
     <td> 
     <xsl:value-of select="strPosName" /> 
     </td> 
    </tr> 
    </xsl:for-each> 
</table> 
</xsl:template> 
</xsl:stylesheet>' 
WHERE .... 

나는 이런 식으로 뭔가 할 싶습니다

UPDATE table 
SET xslt = C:\test\Test.xlm 

이것이 가능을? 이 데이터베이스 엔진이 켜져있는 서버의 드라이브 떨어져 일을 읽을 수는 있지만

답변

0

당신이

select 
     cast(x as xml) 
    from 
     OPENROWSET (BULK 'C:\test\Test.xml',SINGLE_BLOB) myXml(x) 
0

을 시도 할 수 SQL Server가 다른 컴퓨터의 디스크에서 물건을 읽을 수, 쉽게 할 수 없습니다 네트워크에서 그리고 많은 환경에서 개발자는 SQL Server를 실행하는 서버의 드라이브에 액세스 할 수 없습니다.

하지만, 당신이 원하는 것을 얻을 수있는 몇 가지 방법이 있습니다

  1. 이 스타일 시트를로드하여 테이블을 업데이트하는 SSIS 패키지를 사용합니다.
  2. 파일을 읽은 내용을 SQL 업데이트 문에서 매개 변수 값으로 사용하는 간단한 프로그램을 작성하십시오 (또는 누군가에게 쓰기를 요청하십시오).
  3. 임의의 텍스트 파일에 대해 스타일 시트를 실행할 수있는 방법이 있습니까? 그런 다음 XSLT 파일의 내용을 SQL 업데이트 문으로 래핑하여 스타일 시트를 작성하여 테이블을 업데이트하는 데 사용할 스크립트를 생성하십시오.
관련 문제