SQL Server 2008 데이터베이스가 주 서버에 있습니다.데이터베이스의 행을 서버의 텍스트 파일에 추가 할 수 있습니까?
나는이 서버에 연결하여 데이터베이스에 대해 작동하는 10 개의 터미널이 있습니다.
는 내가 필요로하는 모든 단말기를 통해 데이터베이스에 대한 모든 새로운 삽입 -이
라인이 텍스트 파일 (모든 라인) 내가 그것을
을 수행 할 수 있습니다에 삽입 할 서버에? 사전에
감사의가
SQL Server 2008 데이터베이스가 주 서버에 있습니다.데이터베이스의 행을 서버의 텍스트 파일에 추가 할 수 있습니까?
나는이 서버에 연결하여 데이터베이스에 대해 작동하는 10 개의 터미널이 있습니다.
는 내가 필요로하는 모든 단말기를 통해 데이터베이스에 대한 모든 새로운 삽입 -이
라인이 텍스트 파일 (모든 라인) 내가 그것을
을 수행 할 수 있습니다에 삽입 할 서버에? 사전에
감사의가
내가이 삽입 트리거 후이 작업을 수행하기 위해 사용하는 것이 좋습니다 것, 좋은 예에서있다 : 당신이 테이블에 트리거를 작성하는 경우
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"를 주었다. 그래서 그 점도 명심하십시오.
도움을 주셔서 감사합니다. 이 샘플을 얻을 수 있습니까? 내 세부 서버 : MyServer를 데이터베이스 : MYDATABASE 테이블 : MEN 필드 : FNAME, LNAME 텍스트 파일 : D : \ TextTest.txt – Gold
작동하는 경우 ans를 받아들입니다. –