【发布时间】:2012-06-08 08:28:00
【问题描述】:
我正在尝试使用 BCP 导出到 CSV 文件,如下所示:
DECLARE @SQL AS VARCHAR(1000)
DECLARE @CMD AS VARCHAR(8000)
SET @SQL='SELECT * from Pondor.dbo.tblLD'
SET @CMD = 'bcp "' + @SQL + '" QUERYOUT "' + @FILE + '" -c -t "," -U"UserA" -P"Password"
exec master..xp_cmdshell @cmd
这不起作用并引发以下错误:
SQLState = 37000,NativeError = 945
由于文件不可访问或内存或磁盘空间不足,无法打开数据库“Pondor”。 有关详细信息,请参阅 SQL Server 错误日志。
执行SELECT * from Pondor.dbo.tblLD 可以工作并返回行。关于 BCP 命令有什么问题的任何想法?
【问题讨论】:
-
当发出命令的用户是 sysadmin 组的成员时,xp_cmdshell 将在 SQL Server 服务运行的安全上下文中执行。当用户不是 sysadmin 组的成员时,xp_cmdshell 将模拟 SQL Server 代理代理帐户,该帐户使用 xp_sqlagent_proxy_account 指定。很可能您的用户没有访问您要 bcp 文件的目录的权限。
标签: sql sql-server-2008 bcp export-to-csv