Voici un exemple de code qui a bien fonctionné sur une machine 32 bits (SQL Server 2005) et qui doit être mis à jour pour un serveur 64- peu ... Je sais que c'est un problème courant mais je n'ai pas réussi à trouver comment le réparer!Passer de 32 bits à 64 bits, comment faire fonctionner le serveur lié (sp_addlinkedserver)
DECLARE @sourceFile varchar(255), @testRows int
SELECT @sourceFile = @xmlInfo.value('(/SelectFile/DataSource)[1]', 'VARCHAR(100)')
EXEC sp_addlinkedserver 'SomeData', 'Excel', 'Microsoft.Jet.OLEDB.4.0', @sourceFile, '', 'Excel 8.0', ''
IF @xmlInfo.exist('/SelectFile/DataSource') = 1
BEGIN
EXEC(' INSERT INTO TableTest
SELECT col1_Id, col2, Replace(col3, '' '', '''')
FROM OPENROWSET(''Microsoft.Jet.OLEDB.4.0'',
''Excel 8.0;HDR=Yes;Database='[email protected]+''', [Sheet1$])')
SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT
END
Une autre chose que je essayer est de créer un fichier .fmt à partir d'une table, en utilisant l'utilitaire bcp, donc je peux définir le format du fichier en cours de lecture.
Toute aide serait grandement appréciée!
duplication possible de [Passer de la machine 32 bits à la machine 64 bits, comment faire fonctionner le serveur lié] (http://stackoverflow.com/ questions/3389510/move-from-32-bit-to-64-bit-machine-comment-make-linked-server-work) –
Bonjour, Oui, il s'agit d'un doublon, je ne savais pas comment supprimer le précédent! Je veux savoir s'il existe un moyen d'exécuter la procédure système sp_addlinkedserver dans une machine 64 bits, en passant les paramètres mentionnés ci-dessus. J'essaie d'obtenir des données Excel (sourceFile) et de placer les résultats dans une table, dites 'TableTest' Je suis assez nouveau à ce sujet, donc probablement mes questions sont vagues, espérons que ce commentaire le rend un peu plus clair. Merci pour toute aide! – Amy