2014-08-29 57 views
0

我在我的表中有一列設置爲xslt(XML(。),非空)。選擇本地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. 你有辦法針對任意文本文件執行樣式表嗎?然後編寫一個樣式表,用SQL更新語句包裝XSLT文件的內容,從而生成一個用於更新表格的腳本。