SQL Server 2008 R2 写入文本文件

SQL Server 2008 R2 写入文本文件

我曾经使用下面列出的代码从 SQL Server 写入文本文件:

DECLARE @FS INT         --File System Object 
DECLARE @OLEResult INT  --Result message/code
DECLARE @FileID INT     --Pointer to file

--Create file system object (OLE Object)    
EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
IF @OLEResult <> 0 PRINT 'Scripting.FileSystemObject.Failed'

-----OPEN FILE-----
EXECUTE @OLEResult = sp_OAMethod @FS, 'OpenTextFile', @FileID OUT, @FileName, 8, 1
IF @OLEResult <> 0 PRINT 'OpenTextFile.Failed'

看来 sql server 2008 r2 不再支持此功能。我应该如何导出到 sql server 2008 r2 中的文本文件?

声明不再支持该功能的链接: http://social.msdn.microsoft.com/Forums/en/transactsql/thread/f8512bec-915c-44a2-ba9d-e679f98ba313

答案1

这篇文章中提到的弃用是 SQL DMO(已被替换为SQL 状态管理从 SQL Server 2005 开始)。但是,您的代码不使用 SQL DMO 对象,因此您确实找错了方向。您链接到的帖子恰好使用 sp_OA* procs 来创建 SQL DMO 对象的实例。

您需要Ole Automation Procedures在 SQL 实例中打开该选项。出于安全考虑,默认情况下该选项处于关闭状态。使用 sp_OA* procs 时需要此选项。

这应该可以帮你解决。

sp_configure 'show advanced options',1
GO

reconfigure
GO

sp_configure 'Ole Automation Procedures',1
GO

reconfigure
GO

相关内容