8
votes

SQL Server 2008: Copiez un fichier et renommez-le

J'ai un fichier à l'intérieur d'un répertoire \\ myserver \ admin \ temp \ testtemp.txt code>

J'ai besoin d'écrire un TSQL sur P>

  1. recherche testtemp.txt code> fichier. li>
  2. Si existe, créez-en une copie et renommez-le à COPYTESTTEMP.TXT CODE> LI>
  3. s'il y a testtemp.txt code> déjà dans le répertoire ci-dessus comme celui-ci p>

    \\abcd\Admin\temp\Copytesttemp.txt
    
  4. puis supprimez-le et recréez copytestemp.txt code> p> li> ol>

    Comment puis-je y arriver? Merci. p> p>


3 commentaires

C'est une petite fraction de mon TSQL. Je veux pouvoir transmettre ce nouveau fichier copytesttemp.txt sur mon insertion en vrac et la requête ultérieure de la table résulte de l'insert en vrac, de créer une vue, etc.


Qu'avez-vous essayé - nous ne faisons pas que pas à pas à pas faire tout ce que nous pouvons seulement fournir des conseils.


Dans Ref to Stackoverflow.com/ Questions / 10486013 / ... , je dois être capable de passer le fichier CopyTestTemp.txt sur mon insertion en vrac.Veuillez-moi savoir si vous avez besoin d'une explication plus poussée. Merci encore.


3 Réponses :


3
votes

Créer un travail d'agent SQL qui exécute un script de commande pour effectuer les actions.


0 commentaires

20
votes

Vous pouvez utiliser XP_CMDSHELL pour exécuter toutes les commandes DOS que vous aimez, par exemple xxx

Assurez-vous simplement que XP_CMDSHELL est activé sur votre installation.


3 commentaires

Salut Paul, merci pour votre aide. Mais je reçois accès refusé, 0 fichier copié (s) copié (s). J'ai vérifié et j'ai trouvé que XP_CMDSHELL est installé / activé sur mon serveur. N'importe quel indice?


Découvrez quel compte SQL Server est exécuté, puis vérifiez que le compte est capable de lire / écrire le répertoire partagé que vous essayez d'écrire à.


Merci Paul. C'était un problème de permission et il a été corrigé. On m'a donné la permission d'accéder aux ressources du réseau.



0
votes

Vous pouvez essayer ceci pour copier un fichier et renommer xxx

Copiez uniquement et déplacez simplement comme cmd xxx


0 commentaires