Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用SQL Server 2008在本地计算机上创建文本文件_Sql_Sql Server 2008_Tsql_Text_Export To Csv - Fatal编程技术网

使用SQL Server 2008在本地计算机上创建文本文件

使用SQL Server 2008在本地计算机上创建文本文件,sql,sql-server-2008,tsql,text,export-to-csv,Sql,Sql Server 2008,Tsql,Text,Export To Csv,我想知道如何创建一个文本文件并将其保存在本地计算机上,下面是我正在使用的存储过程。它在服务器上创建文本文件,但我希望它在本地计算机上创建 非常感谢您的帮助 alter Procedure [dbo].[USP_SaveFile] (@text as NVarchar(Max), @Filename Varchar(200)) AS Begin declare @Object int, @rc int, @FileID Int

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

非常感谢您的帮助

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'
alter过程[dbo].[USP\u保存文件]
(@text作为NVarchar(Max),@Filename Varchar(200))作为
开始
声明
@对象int,
@rc int,
@FileID Int
EXEC@rc=sp_OACreate'Scripting.FileSystemObject',@Object OUT
EXEC@rc=sp_OAMethod@Object,'OpenTextFile',@FileID OUT,@Filename,2,1
设置@text=Replace
EXEC@rc=sp_OAMethod@FileID,'WriteLine',Null,@text
Exec@rc=[databasename].dbo.sp_OADestroy@FileID
声明@Append位
选择@Append=0
如果@rc 0
开始
Exec@rc=[databasename].dbo.sp_OAMethod@Object,'SaveFile',null,@text,@Filename,@Append
终点
Exec@rc=[databasename].dbo.sp_OADestroy@Object
终点
--使用[数据库名称]
--EXEC sp_配置“显示高级选项”,1
--去
--EXEC sp_配置“Ole自动化过程”,1;
--去
--重新配置;
--去
--EXEC USP_保存文件“Microsoft SQL Server 2008”,“D:\sqlfiles\test.txt”

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

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

请注意,SQL Server是一种服务,因此:应用于它。

+1对于答案,@MichałPowaga是否有其他方法可以实现同样的效果,因为我没有共享文件夹的权限。不,对不起。我只考虑执行过程并保存返回结果集(或输出参数)的客户端应用程序。但它不会像您希望的那样在服务器端发生。我认为SSIS对您不可用?这确实是一个更好的工作工具。