0
votes

Lorsque j'exécute un instruction insert, aucun changement n'a été apporté, bien que le message indique (146689 rangées affectées). Qu'est-ce que je fais mal?

Voici la déclaration que j'ai exécutée: xxx

message après exécution: xxx

J'ai vérifié le importateur_land_2 Table et la colonne Begeffdate est toujours null , bien que le message SQL indique que (146689 lignes touchées).


11 commentaires

Vous semblez manquer quelque chose. Do Tables Import_Land_2 et Import_AppSite n'a que la colonne unique Begeffdate ? Vous allez obtenir un nouvel enregistrement dans importer_land_2 pour chaque enregistrement dans importateur_appsite et seule la colonne begeffdate aura des données. Ce sera null s'il est null dans chaque enregistrement de importateur_appsite .


Si vous ne voulez pas insérer des lignes avec des valeurs nulles dans Begeffdate, ne les sélectionnez pas. Et il est difficile de croire que vous avez examiné toutes les lignes 146K qui ont été insérées pour vérifier que chaque ligne avait une valeur nulle pour Begeffdate. Avez-vous vérifié tous? Comment avez-vous fait cela? La table Import_Le_2 a-t-elle déjà eu des lignes avant que l'instruction insertion ait été exécutée?


@Dashier La colonne Begeffdate de la table Import_AppSite est remplie avec les données dont j'ai besoin dans ma table, c'est pourquoi j'essaie de transférer ces données en utilisant l'instruction insertion dans la colonne Import_Le_2, Begeffdate Colonne.


@Smor, non, je n'ai pas vérifié toutes les lignes, vous êtes correct à ce sujet. J'ai fait défiler les lignes supérieures et le bas et la rangée entière est null. La colonne Begeffdate de la table Import_AppSite est remplie, j'ai parlé avec le DBA et il m'a dit que tout va bien pour moi d'y aller et de tirer cette donnée - il le gère, il est donc prêt pour moi de me mettre dans ma table. Je veux comprendre cela avant de demander de l'aide à mes collègues.


SQL Transaction rouleau de retour peut-être?


Je suis sous l'impression que vous êtes confus sur insérer - cela insérera nouvelles lignes dans votre table - mais il sera pas affecter Votre existant Lignes! Vous semblez vous attendre à obtenir de nouvelles valeurs dans vos lignes existantes par cette commande - pour cela, vous devez utiliser une mise à jour Déclaration - Pas un Insérer .....


@marc_s j'ai essayé la déclaration de mise à jour et je reçois maintenant (440067 rangées touchées), mais lorsque je renvoie à la table dans laquelle j'essaie de mettre à jour la colonne est toujours null. À ce stade, je suppose qu'il est préférable de demander de l'aide à mes collègues. Je voulais le faire de manière indépendante, mais cela n'a pas fonctionné. Merci de votre aide.


Recherchez la différence entre insérer et update .


@Eric j'ai fait référence à ceci -> Stackoverflow.com/Questtions/2002500/...


Je l'ai compris en faisant des recherches et en balayant ce site! J'ai utilisé cet exemple comme référence: mise à jour Table1 Set Table1.Price = Table2.Prix de TABLE1 JOIN INTERNIER TABLAS2 sur table1.Id = TABLE2.ID


La réponse était ici dans ce flux. Je devais faire une join intérieure -> Stackoverflow.com/questions/1746125/...


3 Réponses :


-1
votes

Un jour, il y a un retour en arrière par le dbengine. Veuillez vérifier si tel est le cas avec votre demande. Tx


0 commentaires

0
votes

Essayez:

INSERT INTO Import_LAND_2 (BegEffDate) 
SELECT BegEFFDate FROM Import_AppSite
WHERE BegEFFDate IS NOT NULL;


0 commentaires

-1
votes

Vérifiez que vous vérifiez la gâchette sur cette table. Je pense qu'il y a plutôt de déclencher.


1 commentaires

Cela ne fournit pas de réponse à la question. Une fois que vous avez une réputation suffisante, vous pourrez commenter n'importe quel message; Au lieu de cela, apportez des réponses qui n'exigent pas de clarification de l'Asker.