【发布时间】:2010-08-02 16:25:41
【问题描述】:
这里有一些示例代码在 32 位机器(SQL server 2005)上运行良好,需要更新为 64 位...我知道这是一个常见问题,但无法找到如何修复它!
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='+@sourceFile+''', [Sheet1$])')
SELECT @testRows = @@ROWCOUNT, @totalRows = @totalRows + @@ROWCOUNT
END
我正在尝试的另一件事是使用 bcp 实用程序从表中创建一个 .fmt 文件,这样我就可以定义正在读取的文件的格式。
任何帮助将不胜感激!
【问题讨论】:
-
嗨,是的,这是重复的,我不知道如何删除以前的!我想知道是否有一种方法可以在 64 位机器上执行 sp_addlinkedserver 系统过程以工作,并传递上述参数。我正在尝试获取 Excel 数据(sourceFile)并将结果放在表格中,比如“TableTest”我对此很陌生,所以我的问题可能很模糊,希望这个评论让它更清楚一点。感谢您的帮助!
标签: sql-server sql-server-2008 linked-server bcp openrowset