我试图从视图中生成新格式的文件,以便创建以竖线分隔的平面文件。
我在SSMS 2014中使用xp_cmdshell
我正在使用以下代码:
BCP [UGM31EdwDemo].dbo.vwCCLF1_Output format nul -c -f C:\CCLF1Demo.fmt -t, -T
这是我收到的结果:
SQLState = S1000,NativeError = 0
错误= [Microsoft] [用于SQL Server的ODBC驱动程序13]无法打开BCP 格式文件
任何帮助将不胜感激。
答案 0 :(得分:1)
最可能的原因是(由于某些事情可能出错),这是因为SQL Server服务帐户无法写入根C:\文件夹。尝试使用其他路径/网络共享。
使用XP_CMDSHELL时,必须注意,您不再是执行传递的BCP命令的“用户”。当您将BCP命令字符串传递给XP_CMDSHELL时,将在基础OS(SQL Server处理之外)上启动新的会话/线程。此新会话使用SQL Server运行帐户的身份验证。
另一个帐户需要此权限才能写入要放置格式文件的位置。
此外,如果您的SQL Server是联网的SQL Server(而不是在桌面上运行的SQL Server),则很可能已阻止对C:\的写权限。甚至IT部门可能已经将台式机配置为不允许写入C:\根文件夹。
只需尝试写入另一个您有权访问所有内容的文件夹即可。