|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Bonjour,
Par requête j'obtiens une liste d'Id dans ma variable @result select @result me retourne 6,10,51 ... puis dans une autre requête je fais : select * from toto where idTata in (@result) et là j'obtiens une erreur : Échec de la conversion de la valeur nvarchar '6, 10, 11, 84, 87, 220, 287, 478, 572, 573, 576, 620, 631, 632, 636, 1764, 3961, 3963, 3964, 4153, 4154, 4155, 4156, 4157, 4158, 4995, 4998, 16482' en type de données int. Comment puis convertir cette liste ? j'ai essayé avec convert sans succès ! |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
C'est bon j'ai réussi !!!
|
|
|
00
|
|
|
#3 | |||||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 667 ![]() |
Bonjour,
D'abord stocker un entier dans un nvarchar est bête pour deux raisons : - on stocke des entiers dans un type entier - nvarchar utilise Unicode, et donc 2 octets par caractère, pour stocker les chaînes de caractères contenant des littéraux provenant d'alphabets non-latins. Si vous aviez utilisé du varchar, vous n'occupez qu'un seul octet par caractère, puisqu'alors c'est ASCII qui est utilisé ... Citation:
Code :
SELECT * FROM toto WHERE idTata IN (@result) IN introduit une liste de valeurs, donc à la place de @result, vous auriez du écrire SELECT uneColonne FROM @result. L'écriture suivante est un peu plus élégante : Code :
Dès SQL Server 2005, vous pouvez écrire : Code :
@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|||||
|
00
|
Copyright © 2000-2012 - www.developpez.com