【发布时间】: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