2010-06-02 3 views
0

J'ai la base de données sql-server 2008 dans le serveur principal.est-il possible d'ajouter une ligne de base de données au fichier texte dans le serveur?

J'ai 10 terminaux qui se connectent à ce serveur et fonctionnent par rapport à la base de données.

i besoin que chaque nouvelle insertion à base de données via un terminal - dans le serveur ce

ligne va insérer dans un fichier texte (chaque ligne)

puis-je faire?

remercient à l'avance

+0

accepter ans si cela fonctionne –

Répondre

0

Je recommande l'utilisation d'un après déclencheur d'insertion pour cela, il y a quelques bons exemples à:

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

Si vous créez votre déclencheur sur les tables où les données est en train d'être inséré, il sera déclenché chaque fois qu'une insertion de n'importe quel terminal se produit. À l'intérieur du déclencheur, vous pouvez écrire les détails de l'insertion dans le fichier journal, en utilisant peut-être le conseil de pranay_stacker.

À titre d'exemple de quelque chose que je fouetté rapidement:

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 

Vous aurais bien sûr de modifier la base de données et les noms de tables, etc.

L'autre chose à garder à l'esprit est que vous devez activer xp_cmdshell que par défaut serveur SQL est-il commutée pour des raisons de sécurité, cela se fait via:

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

RECONFIGURE 

EXEC master.dbo.sp_configure 'xp_cmdshell', 1 

RECONFIGURE 
go 

Et enfin, la dernière chose que je remarque est que quand j'ai eu l'écho de c: \ var_out2.txt, il me donnait un "Accès refusé" mais quand je l'ai changé en c: \ test \ var_out2.txt cela a bien fonctionné. Alors gardez cela à l'esprit aussi.

+0

merci pour l'aide puis-je obtenir un échantillon pour cela? mon détail serveur: MyServer base de données : myDatabase Table: MEN terrain: fname, lname fichier texte : d: \ TextTest.txt – Gold

Questions connexes