【问题标题】:Creating a text file on local machine using SQL Server 2008使用 SQL Server 2008 在本地计算机上创建文本文件
【发布时间】:2011-12-29 06:43:09
【问题描述】:

我想知道如何创建一个文本文件并将其保存在我的本地机器上,下面是我正在使用的存储过程。它在服务器上创建文本文件,但我希望在我的本地计算机上创建它。

非常感谢任何帮助..

alter Procedure [dbo].[USP_SaveFile]
    (@text as NVarchar(Max), @Filename Varchar(200)) AS
Begin
    declare
        @Object int,
        @rc int,
        @FileID Int

    EXEC @rc = sp_OACreate 'Scripting.FileSystemObject', @Object OUT
    EXEC @rc = sp_OAMethod @Object , 'OpenTextFile' , @FileID OUT , @Filename , 2 , 1
    Set @text = Replace(Replace(Replace(@text,'&','&'),'<' ,'<'),'>','>')
    EXEC @rc = sp_OAMethod @FileID , 'WriteLine' , Null , @text
    Exec @rc = [databasename].dbo.sp_OADestroy @FileID

    Declare @Append bit

    Select @Append = 0

    If @rc <> 0
    Begin
        Exec @rc = [databasename].dbo.sp_OAMethod @Object, 'SaveFile',null,@text ,@Filename,@Append
    End

    Exec @rc = [databasename].dbo.sp_OADestroy @Object
End

--  Use [databasename]
--  EXEC sp_configure 'show advanced options', 1
--  GO
--  EXEC sp_configure 'Ole Automation Procedures', 1;
--  GO
--  RECONFIGURE;
--  GO
--  EXEC USP_SaveFile 'Microsoft SQL Server 2008', 'D:\sqlfiles\test.txt'

【问题讨论】:

  • 我认为您无法使用 SSIS?这对于这项工作来说确实是一个更好的工具。

标签: sql sql-server-2008 tsql text export-to-csv


【解决方案1】:

在您的本地计算机上创建一个共享,然后像这样使用它:

EXEC USP_SaveFile 'Microsoft SQL Server 2008', '\\YourMachine\dir1\dir2\test.txt'

请注意 SQL Server 是一项服务,因此:Network Service account accessing a folder share 适用于它。

【讨论】:

  • +1 作为答案,@Michał Powaga 是否有任何其他方法可以实现相同的目标,因为我没有共享文件夹的权限。
  • 不,抱歉。我唯一想到的是客户端应用程序,它执行过程并保存返回的结果集(或输出参数)。但它不会像你想的那样在服务器端发生。
猜你喜欢
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
  • 2020-10-07
  • 2012-05-18
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多