Comment faire pour enregistrer le résultat de la requête SQL de fichier XML sur le disque
Je voudrais exporter une table à partir de SQL Server 2012 pour fichier XML. J'ai trouvé belle réponse et ici comment faire un document XML à partir de SQL Server base de données de la requête, mais je suis absent de la façon de sauver ce résultat physiquement dans le fichier.
Requête SQL est:
SELECT [Created], [Text]
FROM [db304].[dbo].[SearchHistory]
FOR XML PATH('Record'), ROOT('SearchHistory')
J'utilise Microsoft SQL Server Management Studio pour exécuter ce résultat. Je vois le XML dans une fenêtre de résultat, mais je ne peux pas l'enregistrer.
Il est "Enregistrer le Résultat en tant Que.." dans le menu contextuel, mais avec 98900 lignes, je reçois de mes 8 go de mémoire avec cette option.
Est-il un moyen d'enregistrer cette requête directement dans le fichier XML sur le disque?
OriginalL'auteur Tomas Kubes | 2016-08-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également SQL du Serveur, des procédures stockées étendues à l'exportation d'un fichier xml.
Mais vous devez configurer le serveur sql server avant de pouvoir l'utiliser.
Une fois xp_cmdshel est activé dans SQL Server. Vous pouvez utiliser la commande suivante pour exporter les données vers un fichier xml.
Bonjour, c'est exactement ce que je cherchais. Veuillez expliquer ce que le pca est pour "EXEC xp_cmdshell 'bcp "SÉLECTIONNEZ [Créer]," Merci.
bcp
est SQL de Copie en bloc de commande.OriginalL'auteur M.Ali
Vous pouvez toujours utiliser les "Résultats dans un Fichier" option dans SSMS:
Qui devraient sortir les résultats de l'exécution de la requête directement dans un fichier sur le disque
c'est malheureux..... dans ce cas, je suppose que ma seule solution serait d'écrire un petit programme C# pour exécuter la requête, obtenir les résultats, et d'essayer de les enregistrer sur le disque - peut-être le faire par morceaux (par exemple 1000 lignes à la fois) pour éviter le "OutOfMemoryException" ...
OriginalL'auteur marc_s
À ce travail de SQL Server 2012 est une douleur dans le cul. Enfin, je finis par le mettre à jour vers SQL Server 2014, comme il est déjà prise en charge de SQL fichiers UTF-8 dans sqlcmd.
exécuter suivantes:
sqlcmd -S -U sa -P sapassword -je inputquery_file_name -C65001 -o outputfile_name
-y 0
option pour vous assurer que l'ensemble de XML a été exporté, et pas seulement les 256 premiers caractères.OriginalL'auteur Tomas Kubes