J'essaie de convertir ces données dans ma base de données en Int en fonction du code ci-dessous d'un autre fil. Comme je suis assez nouveau sur SQL, je voulais juste essayer de convertir la colonne "ID Web" pour comprendre le code et ne pas avoir trop d'erreurs.
J'utilise le code suivant, mais obtenez toujours une erreur: p> quand Je cours cela, je reçois cette erreur: p> msg 213, niveau 16, état 1, ligne 4 Je suis un peu confus car je référencie toujours la même table que dans la requête. Que devrais-je me référencer ici? P> p>
Le nom de la colonne ou le nombre de valeurs fournies ne correspondent pas la définition de la table. P>
BlockQuote>
4 Réponses :
Vous devriez simplement être capable de faire: pour votre code, vous souhaitez une mise à jour code> code>, pas un insérer code>. Vous n'avez pas besoin d'une table temporaire. DO: P> -- remove double quotes
update [db].[desktop-order-data] d
set ["Web ID"] = replace(["Web ID"], '"', '');
-- check that the resulting values are convertible
select *
from db].[desktop-order-data] d
where try_cast(["Web ID"] as int) is null and ["Web ID"] is not null;
-- if the above query returns no rows, then
update [db].[desktop-order-data]
set ["Web ID"] = cast(["Web ID"] as int);
Le plage de int code> est: p>
-2 ^ 31 (-2 147 483 648) à 2 ^ 31-1 (2 147 483 647) P> blockQuote>
Votre adresse Web code> code> est de 10 chiffres et commencez par
4 code> - ils ne vont pas correspondre. P>Vous pouvez essayer
bigint code> à la place. p>
Vous ne pouvez pas installer un numéro sur l'ordre de 4363155167 dans int code>, qui passe de -2147483648 à 2147483647. Pouvez-vous utiliser bigint code> ici? P>
Vous obtenez cette erreur car il existe plus d'une colonne dans [Desktop-Order-Data] et que vous essayez d'insérer une colonne seulement 1, sans spécifier la colonne cible. Changez simplement votre instruction insertion à:
INSERT INTO [db].[desktop-order-data] ([Web ID]) SELECT CAST(["Web ID"] as int) FROM #tmp
Tagez votre question avec la base de données que vous utilisez. En outre, votre exemple de code a plusieurs instructions. Lequel provoque l'erreur?
Vous créez une table à l'aide de
Sélectionnez CODE> /dans CODE> avec quatre colonnes, puis utilisez unInsérer code> avec une seule colonne. Chose curieuse, ça. Y a-t-il vraiment des guillemets (") dans les données? Mis à part: avez-vous vérifié la gamme deint code>?