2017-02-22 2 views
0

Problème: J'essaie d'insérer un fichier .csv avec des milliers/millions de lignes dans une table SQL Server avec une requête bulk insert. Maintenant, je veux mettre à jour la table avec la mise à jour en vrac où la colonne spécifique est la modification, par exemple, où le prix est modifié. Comment puis-je faire ceci? Et aussi: Je veux ignorer la contrainte lors de l'insertion dans la tableModifier en bloc toutes les entrées pour une colonne particulière dans une base de données SQL Server

maintenant la table par exemple
BULK INSERT Table 
FROM 'D:\test.csv' 
WITH 
    (FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n') 
GO 

contient la colonne de prix lorsque le deuxième fois que je mettre à jour le fichier que cette mise à jour de la ligne qui a un prix différent avant

Répondre

3

le faire en deux (ou plus) étapes.

Insérez les données brutes (les défauts et tous), puis exécutez une instruction de mise à jour séparée pour lui donner l'apparence souhaitée. Pour une table volumineuse ou occupée, ou pour séparer les nouvelles données jusqu'à ce qu'elles soient prêtes, vous pouvez également commencer par les insérer en bloc dans une table de stockage séparée, les masser et y nettoyer les données, puis migrer à partir du tenant la table à la table finale.

Vous pouvez également écrire un programme client pour pré-nettoyer les données avant l'insertion en bloc, ou vous pouvez utiliser un outil comme SQL Server Integration Services (SSIS) pour gérer l'importation. SSIS a beaucoup de fonctionnalités intéressantes pour gérer ce genre de choses.

Ce que vous ne pouvez pas faire est de faire un ajustement simple ou rapide au code d'encart en vrac. Il fait ce qu'il fait, et rien de plus.

1

Vous ne pouvez pas charger en bloc un fichier en plus d'un téléchargement précédent et enregistrer uniquement les différences. Vous pouvez soit rafraîchir complètement les données (c'est-à-dire: une charge complète qui écrase), télécharger le CSV complet dans une table intermédiaire et comparer les deux tables en utilisant le code SQL ou utiliser un outil tel que SSIS pour se connecter au fichier CSV. contre les vales de votre table et déclencher les mises à jour à partir de là.