2010-08-20 7 views
1

Mon fournisseur a créé un serveur lié (SQL Server 2008) à notre serveur (SQL Server 2000).Problème de serveur lié et de table temporaire

Cela était en réponse à un problème que j'ai eu avec le fournisseur en changeant un type de données à varchar(max). J'ai été informé que je devrais créer un lien de 2008 à 2000 pour résoudre le problème. Maintenant que je l'ai accompli cette tâche, quand je lance ma requête qui renvoie à une table sur le SQL Server 2000 je reçois cette erreur:

Msg 208, Level 16, State 1, Line 8 Invalid object name 'dbo.tbl_QClients'. The linked server has permissions to this table.

Ceci est essentiellement ce que ma requête ressemble;

Select 
    Col1, 
    Col2, 
    Col3, 
    ... 
INTO 
    #temptable 
FROM 
    tbl_on_SQL2000 
... 

C'est un peu plus complexe que cela (jointures multiples) mais c'est fondamentalement la requête. La seule chose que j'ai trouvé est quand je supprime le INTO #temptable de la requête, il ne me donnera pas une erreur. Des idées?

Merci pour votre temps.

Cordialement, Oscar

Répondre

0

Vérifiez si vous disposez des autorisations d'écriture, SELECT ... INTO crée une nouvelle table afin que le plus probable est pourquoi il te donne une erreur.

0

Essayez de définir la table temporaire avant l'insert ...

CREATE #temptable (
    blah, 
    blah, 
    blah 
) 

INSERT INTO 
    #temptable 
SELECT 
    blah 
FROM 
    blah 

J'ai souvent un comportement « inattendu » expérimenté lors de l'assemblage des tables d'un serveur sur les tables d'un autre serveur. Principalement parce que SQL est bon pour extraire des données d'un serveur distant [il est souvent tiré comme un grand ensemble], mais pauvre et poussant les données vers un serveur distant [il est souvent fait un enregistrement à la fois]. Pour cette raison, j'ai tendance à reformuler par des requêtes en plus petites et plus simples, obtenant le comportement et la performance que j'attends.

Questions connexes