Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2011, 10h36   #1
Invité régulier
 
Inscription : janvier 2011
Messages : 14
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 14
Points : 8
Points : 8
Par défaut probleme avec une requete

* Bonjour, *

j'ai envie d'importer les données d'une base crée avec sql server 2000 mais restore sous sql server 2008 vers une base crée sous sql server 2008 et ce qui se passe c'est que j"entre cette requête d'abord pour sélectionner les données a importer.

Code :
SELECT * FROM messa..Police WHERE police.Numero_Police  NOT IN (SELECT num_police AS numero_police FROM [production ]..dim_police)
mais j'ai ce message d'erreur

Citation:
'Msg 468, Level 16, State 9, Line 1
Cannot resolve the collation conflict between "French_CI_AS" and "SQL_Latin1_General_CP1_CI_AS" in the equal to operation.
'
quelqu'un pourrait il m'aider s'il vous plait

* Merci *
lenumtus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h33   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Vos deux colonnes n'ont pas la même collation; Il vous faut préciser la collation à utiliser pour la comparaison, donc soit :

Code SQL :
1
2
3
4
5
6
7
 
SELECT  * 
FROM messa..Police 
WHERE police.Numero_Police COLLATE [mettre ici la collation de la colonne num_police de la TABLE  [production ]..dim_police ] NOT IN (
    SELECT num_police 
    FROM [production ]..dim_police
)

Soit l'inverse :
Code SQL :
1
2
3
4
5
6
7
8
 
SELECT  * 
FROM messa..Police 
WHERE police.Numero_Police  NOT IN (
    SELECT num_police COLLATE [mettre ici la collation de la colonne num_police de la TABLE messa..Police 
 ]
    FROM [production ]..dim_police
)

Tout dépend de la collation que vous voulez utiliser pour la comparaison
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h44   #3
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Au passage, vous obtiendrez certainement de meilleurs performances en remplaçant votre NOT IN par un NOT EXISTS, voire une jointure externe avec test de nullité :

Code SQL :
1
2
3
4
5
6
7
8
 
SELECT  * 
FROM messa..Police 
WHERE NOT EXISTS (
    SELECT *
    FROM [production ]..dim_police
    WHERE police.Numero_Police = num_police COLLATE French_CI_AS   -- ou  SQL_Latin1_General_CP1_CI_AS
)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 11h47   #4
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 669
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 669
Points : 8 729
Points : 8 729
Bonjour,

On peut aussi écrire :

Code :
1
2
3
4
5
SELECT		M.* 
FROM		messa..Police AS M
LEFT JOIN	[production ]..dim_police AS P
			ON P.Numero_Police = M.num_police COLLATE French_CI_AS -- ou  SQL_Latin1_General_CP1_CI_AS
WHERE		P.Numero_Police IS NULL
@++
__________________
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
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h41.


 
 
 
 
Partenaires

Hébergement Web