SQL Server 2008 BCP导出抛出:NativeError = 945,由于文件不可访问或内存不足,无法打开数据库

时间:2012-06-08 08:28:01

标签: sql sql-server-2008 bcp export-to-csv

我正在尝试使用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命令有什么问题的任何想法?

1 个答案:

答案 0 :(得分:1)

您没有在命令中指定服务器。添加具有正确值的-S选项。如果您的服务器是服务器上的“默认”实例,则可以放置-S.

Pinal Dave

解释了修复数据库打开错误的步骤
  1. 如果可能,可以通过从硬盘驱动器中删除不必要的文件或添加更大尺寸的新硬盘来增加更多硬盘空间。

  2. 检查数据库是否设置为自动增长。

  3. 检查尝试访问数据库的帐户是否具有足够的权限来执行操作。

  4. 确保.mdf和.ldf文件未在操作系统文件系统级别标记为只读。