Раньше я писал текстовые файлы из 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