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
C# 是否可以将数据库中的行添加到服务器中的文本文件中?_C#_Sql Server 2008 - Fatal编程技术网

C# 是否可以将数据库中的行添加到服务器中的文本文件中?

C# 是否可以将数据库中的行添加到服务器中的文本文件中?,c#,sql-server-2008,C#,Sql Server 2008,我在主服务器中有sql server 2008数据库 我有10个终端连接到这个服务器,并针对数据库工作 我需要每一个新的插入到数据库通过任何终端-在这个服务器 行将插入到文本文件(每行) 我能做吗 提前感谢我建议使用插入后触发器来执行此操作,以下是一些很好的示例: 如果在插入数据的表上创建触发器,则每次从任何终端插入数据时都会触发触发器。在触发器内部,您可以将插入的详细信息写入日志文件,也许可以使用pranay_stacker的建议 举个例子,我很快就想到了: create TRIGGER d

我在主服务器中有sql server 2008数据库

我有10个终端连接到这个服务器,并针对数据库工作

我需要每一个新的插入到数据库通过任何终端-在这个服务器

行将插入到文本文件(每行)

我能做吗


提前感谢

我建议使用插入后触发器来执行此操作,以下是一些很好的示例:

如果在插入数据的表上创建触发器,则每次从任何终端插入数据时都会触发触发器。在触发器内部,您可以将插入的详细信息写入日志文件,也许可以使用pranay_stacker的建议

举个例子,我很快就想到了:

create TRIGGER dbo.productTrigger
    on dbo.Product
    after insert
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    declare @data nvarchar(255);

    DECLARE dataCursor CURSOR FAST_FORWARD FOR 
        select ProductCode from inserted;

    OPEN dataCursor
    FETCH NEXT FROM dataCursor
    INTO @data

    WHILE @@FETCH_STATUS = 0 BEGIN
        declare @cmd sysname;
        set @cmd = 'echo ' + @data + ' >> c:\test\var_out2.txt';
        exec master..xp_cmdshell @cmd, NO_OUTPUT;

        FETCH NEXT FROM dataCursor
        INTO @data
    END

    CLOSE dataCursor;
    DEALLOCATE dataCursor;
END
当然,您必须修改数据库和表名等

要记住的另一件事是,您需要启用xp_cmdshell,因为出于安全原因,默认情况下SQL server已将其关闭,这可以通过以下方式完成:

EXEC master.dbo.sp_configure 'show advanced options', 1

RECONFIGURE

EXEC master.dbo.sp_configure 'xp_cmdshell', 1

RECONFIGURE
go

最后,我注意到的最后一件事是,当我对c:\var\u out2.txt进行回显时,它给了我一个“拒绝访问”的消息,但是当我将它改为c:\test\var\u out2.txt时,它工作得很好。所以也要记住这一点

谢谢你的帮助我能得到这个的样品吗?我的详细信息服务器:MyServer数据库:MyDatabase表:MEN字段:fname,lname文本文件:d:\textest.txt