Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 使用SQLXMLBulkLoad,由于列不接受空值而获取异常_Sql Server 2005_Exception_Vb.net 2010_Sqlxml_Bulk Load - Fatal编程技术网

Sql server 2005 使用SQLXMLBulkLoad,由于列不接受空值而获取异常

Sql server 2005 使用SQLXMLBulkLoad,由于列不接受空值而获取异常,sql-server-2005,exception,vb.net-2010,sqlxml,bulk-load,Sql Server 2005,Exception,Vb.net 2010,Sqlxml,Bulk Load,我正在尝试使用Visual Studio 2010在VB.NET中使用SQLXMLBulkLoad对象模型将XML数据批量插入SQL Server 2005 Express 当加载程序到达my.xml文件中不包含值的元素时,它会抛出一个错误,因为SQL Server中相应的表列被设置为不包含空值。这是经过设计的,我需要加载程序插入一个空格,而不是插入NULL。我不知道该怎么做,因为这是我第一次使用BulkLoad。有什么建议吗 error.xml文件包含以下文本: <?xml vers

我正在尝试使用Visual Studio 2010在VB.NET中使用SQLXMLBulkLoad对象模型将XML数据批量插入SQL Server 2005 Express

当加载程序到达my.xml文件中不包含值的元素时,它会抛出一个错误,因为SQL Server中相应的表列被设置为不包含空值。这是经过设计的,我需要加载程序插入一个空格,而不是插入NULL。我不知道该怎么做,因为这是我第一次使用BulkLoad。有什么建议吗

error.xml文件包含以下文本:

  <?xml version="1.0" ?> 
    <Result State="FAILED">
     <Error>
       <HResult>0x80004005</HResult> 
       <Description> <![CDATA[ No data was provided for column 'blah' on table 'blah', and this column cannot contain NULL values.]]></Description>
       <Source>General operational error</Source> 
       <Type>FATAL</Type> 
     </Error>
   </Result>

0x80004005
一般操作错误
致命的
编辑:


这家伙和我有完全相同的问题,并且能够通过使用objBl.Transaction=True来解决它。然而,当我尝试这样做时,我得到了一个错误,“无法大容量加载,因为无法打开文件”这是一个本地临时文件“。

我回答这个问题是为了将来有同样情况的用户。尽管不合逻辑,如果将SQL列中的列设置为接受空值并设置默认值=(′),那么XML文件中的空白值将变成空白,而不是空值,并且将不再接收此错误。我无法使用objBl.Transaction=True,因为我的服务器与运行应用程序以执行BulkLoad()的计算机不同。这可以通过设置共享文件夹来解决,但在我的情况下,这不是一个选项。因此,下一个最好的选择是执行上述操作