使用Command shell从SQL Server写入文本文件

时间:2014-12-17 21:30:34

标签: sql-server sql-server-2008

我正在尝试在运行脚本时编写日志文件。日志文件是.txt文件。我使用以下代码来做 -

create PROCEDURE [dbo].[WriteToFile]

    @File        VARCHAR(2000),
    @Text        VARCHAR(2000)

    AS 

    BEGIN 

    DECLARE @OLE            INT 
    DECLARE @FileID         INT 


    EXECUTE sp_OACreate 'Scripting.FileSystemObject', @OLE OUT 

    EXECUTE sp_OAMethod @OLE, 'OpenTextFile', @FileID OUT, @File, 8, 1 

    EXECUTE sp_OAMethod @FileID, 'WriteLine', Null, @Text

    EXECUTE sp_OADestroy @FileID 
    EXECUTE sp_OADestroy @OLE 

    END 

我已经激活了他们的工作权限,但他们没有工作。想通了“EXECUTE sp_OACreate'Scripting.FileSystemObject',@ ole OUT”没有创建日志文件然后我尝试创建一个文件并写入它甚至不起作用。

我用以下命令执行它

EXEC WriteToFile 'C:\Users\<userName>\Documents\SQL Server Management Studio\log1.txt','Did it work?' 

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您需要使用Sql Server可以访问的浴缸。要检查路径是否有效,请在其中放入数据库备份并尝试将其还原。如果你不能,那么sql server无法访问这条路径。