Sql server BCP:无法解析列级排序规则

Sql server BCP:无法解析列级排序规则,sql-server,bcp,Sql Server,Bcp,运行此: bcp MyDb.dbo.uvwMyView out "c:\Test.txt" -SMyServer -T -c 我得到这个错误: SQLState = S1000, NativeError = 0 Error = [Microsoft][SQL Native Client]Unable to resolve column level collations 搜索谷歌发现了许多可能的解决方案,其中没有一个对我有效,也没有一个对他们所推荐的任何人有效。与在线发布的其他案例一样,当我

运行此:

bcp MyDb.dbo.uvwMyView out "c:\Test.txt" -SMyServer -T -c
我得到这个错误:

SQLState = S1000, NativeError = 0
Error = [Microsoft][SQL Native Client]Unable to resolve column level collations 
搜索谷歌发现了许多可能的解决方案,其中没有一个对我有效,也没有一个对他们所推荐的任何人有效。与在线发布的其他案例一样,当我在ManagementStudio中从视图中进行选择时,该视图不会导致任何问题,并且结果看起来正常(并且没有特殊字符,我选中了)。结果中的一个文本列具有排序规则
SQL\u Latin1\u General\u CP1\u CS\u AS
。我尝试了几种bcp选项,但没有效果:-w、-CRAW、-COEM、-C850、-C437

我正在使用SQL Server 2005。

  • 您可以尝试远程连接到服务器并在不使用-s选项的情况下运行bcp
  • 如果服务器排序规则与数据库或列排序规则不同,请尝试创建格式文件并在bcp中显式指定它

删除视图并重新创建它修复了该问题。不幸的是,这并不能解释问题最初是如何发生的,也不能解释将来如何预防。这不是一个令人满意的解决方案,所以如果有人知道一个更好的答案,我仍然非常有兴趣听到它。

我知道这个问题已经得到了回答,但我会加上我的2美分。。。 我今天遇到了这个,我添加了一个打印@VarableName,在研究中我发现了这个:


删除打印修复了我的问题。

我在对SQL 2008 R2数据库使用SQL 2005工具时,在使用
datetimeoffset
字段时遇到了相同的错误。

请尝试以下方法:

declare @sql varchar(8000)
select @sql = 'bcp "select * from database_name.dbo.table_name" queryout      H:\Tempfile_DTU_proc\test1.csv -c -t, -T -S' + @@servername

exec master..xp_cmdshell @sql

我只是遇到了这个问题,找到了一个不同的解决方案。由于配置错误,未向BCP命令提供服务器名称。出于冗余和文档的考虑,此消息显示:“错误SQLState=S1 000,NativeError=0错误=[Microsoft][ODBC驱动程序13 For SQL Server]无法解析列级排序规则BCP复制失败”


将服务器(-S)参数中指定的空服务器值更改为正确的服务器名称。

这对我来说可能不容易,但我可能会尝试,它可能会提供有用的信息(尽管我对此表示怀疑)。不幸的是,无论发生什么情况,我都无法在生产环境中像那样运行该过程,因此从长远来看,它对我没有帮助,除非它能帮助我找到问题的真正根源。格式化文件是个好主意,但不幸的是,我也会遇到同样的错误。列格式(见xml)说明了什么当您运行以下命令时:bcp MyDB.dbo.uvwMyView format null-f c:\FMT_01.xml-x-c-T-tannoy,我会收到相同的错误消息。也就是说,我不能执行你提到的声明。我在上一次测试中使用的格式文件的制作方法是在一个视图上使用一个现有的格式文件,该文件的格式完全相同(从相同的表中选择),并且没有这个问题。很有趣,谢谢您添加这个文件,但这不是我遇到的问题。我没有任何书面声明。现在已经11年了,这个问题再也没有发生过。真奇怪。