Article ID: 944389 - View products that this article applies to.
This article has been archived. It is offered "as is" and will no longer be updated.
In a Microsoft .NET Framework 2.0 application, you use the SqlBulkCopy class to copy data from a System.Data.DataTable to a table in Microsoft SQL Server. If the table name contains a dot character (.), you receive the following error message:
System.InvalidOperationException was unhandled
Message="Failed to obtain column collation information for the destination table. If the table is not in the current database the name must be qualified using the database name (e.g. [mydb]..[mytable](e.g. [mydb]..[mytable]); this also applies to temporary-tables (e.g. #mytable would be specified as tempdb..#mytable)."
To work around this problem, avoid dot characters (.) in table names.
If you have to use a dot character (.) in a table name, use the dot character (.) as part of the SQL naming convention. For example, use a table name that resembles the following:
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Steps to reproduce the behavior
Call stack information
at System.Data.SqlClient.SqlBulkCopy.AnalyzeTargetAndCreateUpdateBulkCommand(BulkCopySimpleResultSet internalResults) at System.Data.SqlClient.SqlBulkCopy.WriteToServerInternal() at System.Data.SqlClient.SqlBulkCopy.WriteRowSourceToServer(Int32 columnCount) at System.Data.SqlClient.SqlBulkCopy.WriteToServer(IDataReader reader)