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