J'essaie d'exécuter une requête sur un serveur lié, mais j'ai besoin des résultats localement.Possibilité d'utiliser la syntaxe "INSERT INTO @VARIABLE EXEC() AT LINKED_SERVER"? (SQL Server 2005)
DECLARE @test TABLE
(
greeting CHAR(5)
)
INSERT INTO @test
EXEC('select ''hello'' as greeting')
SELECT * FROM @test
utilise un EXEC()
et INSERT INTO
mais, de toute évidence, la requête est en cours d'exécution au niveau local.
DECLARE @test TABLE
(
greeting CHAR(5)
)
INSERT INTO @test
EXEC('select ''hello'' as greeting') AT LINKED_SERVER
SELECT * FROM @test
Ne fonctionne pas du tout.
SELECT greeting FROM OpenQuery(LINKED_SERVER,'SELECT''hello'' AS greeting')
Accomplit exactement ce que je veux, mais je dois être en utilisant une chaîne dynamique, et la seule façon de faire que le travail est de faire toute ma requête une chaîne énorme et le mettre dans un exec() , que je ne veux pas faire car il est vraiment moche ....
Merci pour toute aide!
Votre version intermédiaire fonctionne pour moi dans un cas de test simple. Quel est le problème exact que vous rencontrez avec? –
Il est dit qu'une transaction distribuée n'est pas supportée par le serveur. Je devrais probablement mentionner que le serveur lié n'est pas un autre SQL Server mais un OLE DB. – nosirrahcd
Mais il est bon de savoir, au moins que ce que j'essaie de faire n'est probablement pas possible avec une base de données OLE puisque la syntaxe est valide. – nosirrahcd