我需要将数据从一个数据库迁移到另一个数据库。我选用使用SqlBulkCopy的,但有它的问题,因为源数据库具有不同的排序规则,而不目的地,所以,我有一个例外:使用不同排序规则的SqlBulkCopy
System.InvalidOperationException: The locale id '1049' of the source column 'Id' and the locale id '1033' of the destination column 'Id' do not match.
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)
at MigrateToNormalized.DirectMapCommand.Migrate(SqlConnection source, SqlConnection destination, SqlTransaction transaction) in D:\Projects\APS\DTE\MigrateTo
Normalized\MigrateToNormalized\MigrateToNormalized\DirectMapCommand.cs:line 53
at MigrateToNormalized.Program.Main(String[] args) in D:\Projects\APS\DTE\MigrateToNormalized\MigrateToNormalized\MigrateToNormalized\Program.cs:line 32
谁能告诉我,如何解决没有直接这个问题在SQL查询中使用COLLATE语句?是否有一些简单的方法可以更改源数据库中所有列的排序规则?
这是真的,但我有很多的表和很多列。我不想手动更改他们每个人的通风。 – 2010-12-13 18:42:15
这完全没有回答这个问题。您无法更改客户端数据库以使其正常工作。 – billybob 2017-11-16 22:32:54