2009-11-09 196 views
1

运行此: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 

谷歌搜索发现许多可能的解决方案,其中没有一个为我工作的或已经工作过他们被提议的任何人。和在线发布的其他案例一样,当我在Management Studio中选择它时,该视图不会引起任何问题,并且结果看起来很正常(并且没有特殊字符,我选中了)。结果中的一个文本列有整理SQL_Latin1_General_CP1_CS_AS。我已经尝试了几个选项来bcp没有影响:-w,-CRAW,-COEM,-C850,-C437。

我使用的是SQL Server 2005中

回答

1

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

0
  • 您可以尝试远程连接到服务器并运行BCP没有-s选项从那里。
  • 如果服务器排序规则与数据库或列排序规则不同,请尝试创建格式文件并在bcp中明确指定它。
+1

这可能并不容易,但我会尝试的,它可能提供有用的信息(尽管我对此表示怀疑)。不幸的是,无论如何,我都无法在生产中像这样运行这个过程,所以从长远来看,它无法帮助我,除非它能以某种方式帮助我们追踪问题的真正根源。 – user12861 2009-11-09 18:39:02

+0

格式文件的好主意,但不幸的是我得到了同样的错误。 – user12861 2009-11-09 18:54:51

+0

当你运行这个命令时,对于列格式(请参阅xml)有什么要求: bcp MyDB.dbo.uvwMyView format null -fc:\ FMT_01.xml -x -c -T -t – 2009-11-09 19:19:23

1

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

From MS Connect

删除打印解决了我的问题。

+1

有趣的,谢谢你加入这个,但它不是我的问题。我没有任何PRINT语句。 – user12861 2011-08-22 19:48:16

0

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

0

试试这个:

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