Назад | Перейти на главную страницу

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

То, что в этой статье называется устаревшим, - это SQL DMO (замененный на SQL SMO начиная с SQL Server 2005). Однако ваш код не использует объекты SQL DMO, поэтому вы действительно строите не то дерево. Сообщение, на которое вы ссылаетесь, просто случайно использует процедуры sp_OA * для создания экземпляров объектов SQL DMO.

Вам нужно повернуть Ole Automation Procedures в вашем экземпляре SQL. В целях безопасности он по умолчанию выключен. Эта опция необходима для использования процедур sp_OA *.

Это должно сделать это за вас.

sp_configure 'show advanced options',1
GO

reconfigure
GO

sp_configure 'Ole Automation Procedures',1
GO

reconfigure
GO