SQL Server 2008 R2 escrevendo para arquivo de texto

1

Eu costumava escrever em arquivos de texto do SQL Server usando o código listado abaixo:

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'

Parece que isso não é mais suportado no sql server 2008 r2. Como devo exportar para arquivos de texto no sql server 2008 r2?

O link que reivindica isso não é mais suportado: link

    
por zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 07.02.2012 / 18:27

1 resposta

1

O que esse artigo está se referindo como obsoleto é o SQL DMO (tendo sido substituído por SQL SMO começando com o SQL Server 2005). No entanto, seu código não usa objetos SQL DMO, então você está realmente latindo na árvore errada. A postagem que você vincula apenas coincidentemente usa o sp_OA * procs para criar instâncias de objetos SQL DMO.

Você precisa ativar a opção Ole Automation Procedures na sua instância do SQL. Como precaução de segurança, está desativado por padrão. Essa opção é necessária para usar o sp_OA * procs.

Isso deve fazer isso por você.

sp_configure 'show advanced options',1
GO

reconfigure
GO

sp_configure 'Ole Automation Procedures',1
GO

reconfigure
GO
    
por 07.02.2012 / 19:04