J'ai un processus AM planifié sur SQL Server 2008 qui importe des données à partir d'Oracle à l'aide d'un serveur lié. Je remplace les données importées d'Oracle à l'aide de drop table, puis sélectionnez dans le modèleComment "commander par" change mes résultats ici? Utilisation de T-SQL, OPENQUERY, SELECT INTO
Apparemment, la présence de la "commande par" affecte mon résultat final! Regarde.
--This works fine to give me the one row I'm expecting from the newly imported table:
drop table t1;
SELECT * into t1 fROM OPENQUERY(ODBC_CSRPT,'
select
EXTERNAL_ORGANIZATION_ID
,ORGANIZATION_DESC
,STATE
from sysadm.uv_CS_EXTERNAL_ORGANIZATIONS
order by EXTERNAL_ORGANIZATION_ID asc ');
go
select * from t1
where external_organization_id = '1000107'
go
Mais ceci (ci-dessous) ne renvoie aucune ligne. Mon orgId de 1000107 est maintenant manquant? Comme vous pouvez le voir, la seule chose qui a changé est la présence de la clause order by. Une autre friandise est que la requête du serveur lié retourne le même rowcount (51.225 lignes pour être exact) que le "order by" existe ou non. Des idées?
Eh bien, vous laissez tomber la table chaque fois que vous exécutez ce lot ... est-il possible que les types de données soient différents à chaque approche? Cela aiderait à expliquer pourquoi la deuxième requête ne renvoie rien. –
Est-ce que t1 contient également 51 225 lignes après chaque approche? – Gratzy
est-il possible que l'importation se termine avant que les données réelles soient dans la table, et qu'en ordonnant la sélection d'importation, l'enregistrement que vous recherchez figure dans l'une des premières pages, alors que lors de l'importation non ordonnée des dernières pages? –