I have a program that is using SqlBulkCopy to batch update data in a SQL Server Express 2008 database. Everything was working fine until, for no apparent reason, the bulk inserts failed with the following exception:
“A severe error occurred on the current command. The results, if any, should be discarded.”
After much hair pulling the cause of the error turned out to be the addition of a full text index on one of the fields being updated. Removing the full text index stopped the exception from being thrown. That’s all well and good but I needed a full text index.
The index had been defined something like this:
EXEC sp_fulltext_database 'enable' GO CREATE FULLTEXT CATALOG MyCatalog GO CREATE FULLTEXT INDEX ON dbo.MyTable ( MyColumn Language 0X0 ) KEY INDEX PK_MyTable ON MyCatalog WITH CHANGE_TRACKING AUTO
After some experimentation the problem seemed to be with the CHANGE_TRACKING option. By setting it to OFF the bulk copy worked fine but failed with either AUTO or MANUAL.* For my purposes this was acceptable because the data was fairly static and updated infrequently. I was left with having to ensure the index was rebuilt or populated appropriately as a separate process.
References
* Full-Text Index Population - http://msdn.microsoft.com/en-us/library/ms142575.aspx