web-dev-qa-db-fra.com

Les données d'importation remplacent NULL avec 0

J'utilise SQL Server 2008 R2 Express. J'obtiens des problèmes lorsque j'utilise la fonctionnalité de données d'importation pour importer des données d'une base de données à une autre. J'utilise SSMS pour le faire. Lors de l'utilisation de l'assistant, je choisis l'option "Sélectionner Identity Insert" pour copier la propriété Element Identity. En utilisant ces éléments d'identité sont importés correctement. Mais après l'importation, j'ai comparé la base de données de base de données source et de destination et a trouvé des modifications !!. Toutes les valeurs NULL dans la table sont remplacées par 0. Alors, comment puis-je l'éviter. Est-ce qu'il y a une option pour la copier tel quel en utilisant l'assistant de données d'importation? S'il vous plaît aider

5
IT researcher

Choisissez de sauvegarder le colis au lieu de l'exécuter immédiatement.
Puis modifiez le fichier DTSX et sur votre chèque de tâche de copie "Garder les nulls".
[.____] alors exécutez le DTSX.
[.____] Je ne l'ai pas testé mais je pense que cela résoudra votre cas. enter image description here


Testez la suggestion sur le commentaire sur Express avec des services avancés ... Cela a bien fonctionné :) Vous créez la table de destination, définissez une valeur de valeur NULL sur la colonne et après l'importation de données avec le DTSX, vous supprimez la valeur par défaut ou définissez-la sur ce que vous voulez. . L'importation DTSX remplacera les NULLS avec la valeur par défaut de la colonne lorsque vous ne pouvez pas vérifier le "garder les nulls".

create table dbo.test (
 a int null
 , other columns ...
 )

alter table dbo.test add constraint x default null for a

--Run Import task here

alter table dbo.test drop constraint x
5
JoseTeixeira