exec master..xp_cmdshell ' bcp "数据库..表" out "路径" -c -S服务器 -Usa -P1'用c#调用存储过程实现。当“路径”很短如d:text.txt时能将数据导出。但当路径很长如“d:\testtesttesttesttesttest\test\text.txt”时,不能导出数据,但并没有产生异常。
同时在sqlserver中能正常执行。???????????????????????????????????????????????
同时在sqlserver中能正常执行。???????????????????????????????????????????????
那个是系统存储过程好吧,楼主是在执行SQL SERVER代理任务,不存在长度不够的说法。
xp_cmdshell { 'command_string' } [ , no_output ]
参数
' command_string '
包含要传递到操作系统的命令的字符串。command_string 的数据类型为 varchar(8000) 或 nvarchar(4000),无默认值。command_string 不能包含一对以上的双引号。如果 command_string 中引用的文件路径或程序名中存在空格,则需要使用一对引号。如果不方便使用内含的空格,则可考虑使用 FAT 8.3 文件名作为解决方法。no_output
可选参数,指定不应向客户端返回任何输出。
从这里可以看出,楼主是包含的双引号无效造成的,如果不加引号,则路径名必须使用FAT 8.3形式命名。
或:
"d:\\testtesttesttesttesttest\\test\\text.txt"