2010-06-02 3 views
0

SQL Server 2008 데이터베이스가 주 서버에 있습니다.데이터베이스의 행을 서버의 텍스트 파일에 추가 할 수 있습니까?

나는이 서버에 연결하여 데이터베이스에 대해 작동하는 10 개의 터미널이 있습니다.

는 내가 필요로하는 모든 단말기를 통해 데이터베이스에 대한 모든 새로운 삽입 -이

라인이 텍스트 파일 (모든 라인) 내가 그것을

을 수행 할 수 있습니다에 삽입 할 서버에? 사전에

감사의가

+0

작동하는 경우 ans를 받아들입니다. –

답변

0

내가이 삽입 트리거 후이 작업을 수행하기 위해 사용하는 것이 좋습니다 것, 좋은 예에서있다 : 당신이 테이블에 트리거를 작성하는 경우

http://msdn.microsoft.com/en-us/library/ms189799.aspx

경우 데이터 이 삽입되면 모든 터미널에서 삽입이 발생할 때마다 트리거됩니다. 방아쇠 안에 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 

당신은 물론 데이터베이스 및 테이블 이름을 수정해야 할 것 등

명심해야 할 다른 일이 있다는 것입니다 당신이 보안상의 이유로으로 전환 한 기본 SQL 서버에 의해로 xp_cmdshell을 활성화해야합니다, 이것은을 통해 이루어집니다 :

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

RECONFIGURE 

EXEC master.dbo.sp_configure 'xp_cmdshell', 1 

RECONFIGURE 
go 

그리고 마지막으로 내가주의 마지막 일이 있다는 것입니다 내가 c : \ var_out2.txt에 echo를했을 때, c : \ test \ var_out2.txt로 바꿨을 때 "Access Denied"를 주었다. 그래서 그 점도 명심하십시오.

+0

도움을 주셔서 감사합니다. 이 샘플을 얻을 수 있습니까? 내 세부 서버 : MyServer를 데이터베이스 : MYDATABASE 테이블 : MEN 필드 : FNAME, LNAME 텍스트 파일 : D : \ TextTest.txt – Gold

관련 문제