【问题标题】:Writing to a text file from SQL Server with out using Command shell不使用命令外壳从 SQL Server 写入文本文件
【发布时间】:2014-12-17 21:30:33
【问题描述】:

我正在尝试在运行脚本时编写日志文件。日志文件是 .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)你确定路径存在吗? 2)您可以尝试使用没有空格的路径,即 c:\temp\log1.txt
  • 嗨,Abhi,您是通过 SSMS 运行此程序的,您是否遇到任何错误或文件根本没有创建?
  • 谢谢,要么是空间造成了问题,要么我没有该文件夹的权限。当我将路径更改为 temp 时,它工作得很好。 @Gizmo:没有 SSMS 给出消息“命令已成功完成。”

标签: sql-server sql-server-2008


【解决方案1】:

您需要使用 Sql Server 可以访问的浴缸。要检查路径是否有效,请将数据库备份放入其中并尝试恢复它。如果不能,则 sql server 无法访问此路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2019-03-22
    • 2012-01-15
    • 2023-03-03
    • 1970-01-01
    • 2015-07-20
    相关资源
    最近更新 更多