Récuppérer une valeur dynamique pour une requete sur un serveur di

Le
coolben
Bonjour

Je veux récuppérer des données figurants sur un autre SQL server 2000 que le
mien. J'ai donc réaliser un lot DTS qui transfert les données externe vers ma
base dans des tables 'temporaire' pour ensuite utiliser ces données et les
intégrer ces informations dans mon systeme.

La table source regroupe plus que 2 annees de données. Je souhaite juste
récuppérer tous les jours les nouvelles données.
La seul facon de selectionner les donnees du jour est d'utiliser une clause
id> idmax_de_la_veille.
Mon probleme est que je n'arrive pas a récuppérer automatiquement la valeur
de idmax_de_la_veille qui se trouve dans ma base et pas sur la base distant
(base source)

Lorsque je transfers les données par un lot DTS, je me connecte a la base
distante.
Je peux copier la table entierement ou ecrire une requete SQL.
Voici la requete que jutilise :
select * from coopnet.dbo.stat_part where id> 4744809
Le nombre est rentree manuellement et je ne sais pas comment faire pour
qu'il soit une variable mis a jour automatiquement.

Je peux créer une fonction qui retourne cette valeur sur ma base mais le
probleme c'est que je ne sais pas comment appeler cette fonction lors d'un
requete executé sur un autre serveur distant.

J'espere avoir ete assez claire.
merci d'avance pour votre aide.
Vos réponses
Trier par : date / pertinence
Med Bouchenafa
Le #11414581
Commence par créer un serveur lié de ton serveur distant
Voir sp_addlinkedServer dans Aide En Ligne
Les tables de ton serveur lié vont se comporter comme des tables "locales"
et tu pourrais faire une requête avec une jointure sur les tables de ton
serveur distant et celles de ton serveur local

SELECT * FROM ServeurLié.BaseDistante.dbo.TableDistante
WHERE id> (SELECT MAX() FROM tableLocale )

Bien cordialement
Med Bouchenafa



"coolben" a écrit :

Bonjour

Je veux récuppérer des données figurants sur un autre SQL server 2000 que le
mien. J'ai donc réaliser un lot DTS qui transfert les données externe vers ma
base dans des tables 'temporaire' pour ensuite utiliser ces données et les
intégrer ces informations dans mon systeme.

La table source regroupe plus que 2 annees de données. Je souhaite juste
récuppérer tous les jours les nouvelles données.
La seul facon de selectionner les donnees du jour est d'utiliser une clause
id> idmax_de_la_veille.
Mon probleme est que je n'arrive pas a récuppérer automatiquement la valeur
de idmax_de_la_veille qui se trouve dans ma base et pas sur la base distant
(base source)

Lorsque je transfers les données par un lot DTS, je me connecte a la base
distante.
Je peux copier la table entierement ou ecrire une requete SQL.
Voici la requete que jutilise :
select * from coopnet.dbo.stat_part where id> 4744809
Le nombre est rentree manuellement et je ne sais pas comment faire pour
qu'il soit une variable mis a jour automatiquement.

Je peux créer une fonction qui retourne cette valeur sur ma base mais le
probleme c'est que je ne sais pas comment appeler cette fonction lors d'un
requete executé sur un autre serveur distant.

J'espere avoir ete assez claire.
merci d'avance pour votre aide.






coolben
Le #11414501
Je viens d'essayer de lier un server a ma base actuelle mais apres quelques
test, l'utilisation de la procedure sp_addlinkedServer m'a ete refusée :

User does not have permission to perform this action.

Y aurait il une autre solution ?

"Med Bouchenafa" a écrit :

Commence par créer un serveur lié de ton serveur distant
Voir sp_addlinkedServer dans Aide En Ligne
Les tables de ton serveur lié vont se comporter comme des tables "locales"
et tu pourrais faire une requête avec une jointure sur les tables de ton
serveur distant et celles de ton serveur local

SELECT * FROM ServeurLié.BaseDistante.dbo.TableDistante
WHERE id> (SELECT MAX() FROM tableLocale )

Bien cordialement
Med Bouchenafa



"coolben" a écrit :

> Bonjour
>
> Je veux récuppérer des données figurants sur un autre SQL server 2000 que le
> mien. J'ai donc réaliser un lot DTS qui transfert les données externe vers ma
> base dans des tables 'temporaire' pour ensuite utiliser ces données et les
> intégrer ces informations dans mon systeme.
>
> La table source regroupe plus que 2 annees de données. Je souhaite juste
> récuppérer tous les jours les nouvelles données.
> La seul facon de selectionner les donnees du jour est d'utiliser une clause
> id> idmax_de_la_veille.
> Mon probleme est que je n'arrive pas a récuppérer automatiquement la valeur
> de idmax_de_la_veille qui se trouve dans ma base et pas sur la base distant
> (base source)
>
> Lorsque je transfers les données par un lot DTS, je me connecte a la base
> distante.
> Je peux copier la table entierement ou ecrire une requete SQL.
> Voici la requete que jutilise :
> select * from coopnet.dbo.stat_part where id> 4744809
> Le nombre est rentree manuellement et je ne sais pas comment faire pour
> qu'il soit une variable mis a jour automatiquement.
>
> Je peux créer une fonction qui retourne cette valeur sur ma base mais le
> probleme c'est que je ne sais pas comment appeler cette fonction lors d'un
> requete executé sur un autre serveur distant.
>
> J'espere avoir ete assez claire.
> merci d'avance pour votre aide.
>
>
>
>


Publicité
Poster une réponse
Anonyme