Вот пример кода, который отлично работал на 32-разрядной машине (SQL Server 2005) и нуждается в обновлении для 64- бит ... Я знаю, что это распространенная проблема, но не удалось найти, как ее исправить!Перемещение с 32-битного на 64-разрядный, как сделать связанный сервер (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
Другое дело, что я пытаюсь из это создать файл .fmt из таблицы, при помощи утилиты BCP, так что я могу определить формат файла читается.
Любая помощь была бы принята с благодарностью!
Возможный дубликат [Перемещение с 32-разрядной до 64-разрядной машины, как сделать работу связанного сервера] (http://stackoverflow.com/ Вопросы/3389510/move-from-32-bit-to-64-bit-machine-how-to-make-linked-server-work) –
Привет, Да, это дубликат, я не знал, как удалить предыдущий! Я хочу знать, есть ли способ выполнить процедуру процедуры sp_addlinkedserver на 64-битной машине для работы, передавая вышеупомянутые параметры. Я пытаюсь получить данные Excel (sourceFile) и помещать результаты в таблицу, скажем, «TableTest» . Я совершенно новичок в этом, поэтому, вероятно, мои вопросы расплывчаты, надеюсь, что этот комментарий немного упростит. Спасибо за любую помощь! – Amy