Visual Studio数据库项目远程部署失败。无法读取本地文件?

时间:2012-11-09 09:16:54

标签: sql visual-studio-2010 sql-server-2008 tsql

我有一个VS 2010数据库项目,我很乐意计划每天部署到我的本地开发服务器,没有任何问题。我们现在正在接近发布期,我想开始部署到远程UAT服务器,但它现在失败了“错误SQL01268:无法批量加载,因为无法打开文件”。我认为这取决于其中一个部署后脚本,其中包含如下行:

declare @xml xml
set @xml = (select * from OPENROWSET(BULK '$(OutputPath)\XML_1.xml', SINGLE_BLOB) as x);

(此xml将进一步插入表格中)

我猜这是失败的,因为该文件实际上并不在远程服务器上,并且它只能用到现在,因为服务器与部署脚本位于同一台机器上。

首先,是吗?其次,有没有人知道我可以改变部署脚本的方法,将这些xml文件作为部署的一部分插入,而不必先将它们复制到远程服务器(我可能没有那种访问权限)。

1 个答案:

答案 0 :(得分:0)

我有一个可能的解决方案,但它并不是特别漂亮 - sqlcmd模式。

我试图在运行之前将所有XML包含在文件中,而不是尝试将文件包含在SQL中。

e.g。

set @xml = '<?xml version="1.0" encoding="utf-8" ?>
:r .\xml\XML_1.xml'
';

这种方法的主要问题是我必须在集合中包含xml声明,因为sql cmd代码必须存在于它自己的行上,但是在xml文件的开头之间不能有回车符和宣言。