--从官方示例来看你的文件名左右缺少双引号 This example accesses data from a table on another instance of SQL Server.SELECT * FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=ServerName;User ID=MyUID;Password=MyPass' ).Northwind.dbo.CategoriesThis is an example of a query against an Excel spreadsheet through the OLE DB provider for Jet.SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
--char改成varchar 可以避免多出来的空格。CREATE PROCEDURE [dbo].[ffmx] @FileName VARCHAR(500) --C:\DiBao\2009年12月发放.XLS AS BEGIN DECLARE @s NVARCHAR(MAX) SET NOCOUNT ON ; --TRUNCATE TABLE SJ_DB_FFMX SET @s = 'insert SJ_DB_FFMX SELECT [行政区划代码],[家庭编号],[户主姓名],' SET @s = @s + '[户主身份证号],[低保证号],[银行帐号],[发放时间]=convert(varchar(6),cast([发放时间] as datetime),112),' SET @s = @s + '[低保金],[其他补贴金额] ' SET @s = @s + 'FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'',' SET @s = @s + '''Data Source=''''' + @FileName + ''''';User ID=Admin;Password=;Extended properties=Excel 5.0'') ...[sheet1$]' SELECT @s END --EXEC [ffmx] 'C:\DiBao\2009年12月发放.XLS'如果还不好使的话,是不是这个文件的内容在发生着变化,出现了不符合要求的数据?
--从官方示例来看你的文件名左右缺少双引号
This example accesses data from a table on another instance of SQL Server.SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.CategoriesThis is an example of a query against an Excel spreadsheet through the OLE DB provider for Jet.SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
--char改成varchar 可以避免多出来的空格。CREATE PROCEDURE [dbo].[ffmx] @FileName VARCHAR(500) --C:\DiBao\2009年12月发放.XLS
AS
BEGIN
DECLARE @s NVARCHAR(MAX) SET NOCOUNT ON ; --TRUNCATE TABLE SJ_DB_FFMX SET @s = 'insert SJ_DB_FFMX SELECT [行政区划代码],[家庭编号],[户主姓名],'
SET @s = @s
+ '[户主身份证号],[低保证号],[银行帐号],[发放时间]=convert(varchar(6),cast([发放时间] as datetime),112),'
SET @s = @s + '[低保金],[其他补贴金额] '
SET @s = @s + 'FROM OpenDataSource( ''Microsoft.Jet.OLEDB.4.0'','
SET @s = @s + '''Data Source=''''' + @FileName
+ ''''';User ID=Admin;Password=;Extended properties=Excel 5.0'') ...[sheet1$]' SELECT @s
END
--EXEC [ffmx] 'C:\DiBao\2009年12月发放.XLS'如果还不好使的话,是不是这个文件的内容在发生着变化,出现了不符合要求的数据?
不过不是您所说的问题
我转win7下,没这毛病了,还晕着,但问题解决了