选择本地xml文件到表中

时间:2014-08-29 06:49:17

标签: sql xml sql-server-2008 tsql xslt

我的表中有一个列设置为xslt(XML(。),而不是null)。

现在我使用常规字符串来设置它。像这样:

UPDATE table
SET xslt = 
'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
  <body>
    <xsl:apply-templates />
  </body>
</html>
</xsl:template>
<xsl:template match="data">
<table width="400" border="1">
  <tr bgcolor="#a0acbc">
  </tr>
  <xsl:for-each select="row">
  </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>'
WHERE ....

我想做这样的事情:

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

这可能吗?

2 个答案:

答案 0 :(得分:0)

你能试试吗

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

答案 1 :(得分:0)

虽然可以从数据库引擎所在的服务器驱动器上读取内容,但SQL Server不可能轻松地从网络上其他计算机的磁盘读取内容。在许多环境中,开发人员不得访问运行SQL Server的服务器的驱动器。

有几种方法可以获得你想要的东西,但是:

  1. 使用SSIS包加载样式表并更新表格。
  2. 编写一个简短的程序(或要求让某人编写一个程序),读取您的文件并将内容用作SQL更新语句中的参数值。
  3. 您是否有办法针对任意文本文件执行样式表?然后编写样式表以使用SQL更新语句包装XSLT文件的内容,从而生成用于更新表的脚本。