前些天研究了向SQL-server插入数据
方法1,
//新表插入
SELECT * into Table1 FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
//然后:向已有表插入数据
INSERT INTO Table1
SELECT * FROM OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;
HDR=NO;IMEX=1;database=c:\test2.xls;','select * from [Sheet1$]')
方法2,
使用OpenDataSource进行插入操作,可以实现指定列的插入(同一记录其他列则为NULL)
insert OPENDATASOURCE
('SQLOLEDB','Data Source=服务器ip;User ID=用户名;Password=密码')
.SXSBD.dbo.Table1(字段1,字段2)
SELECT 字段1,字段2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...sheet1$
要注意,
1。使用转义字符。写在程序中应该是c:\\temp\\test1.xls
2。导入好像只认本机文件,所以需要把excel文件上传到server,写一段代码即可
方法1,
//新表插入
SELECT * into Table1 FROM
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
//然后:向已有表插入数据
INSERT INTO Table1
SELECT * FROM OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;
HDR=NO;IMEX=1;database=c:\test2.xls;','select * from [Sheet1$]')
方法2,
使用OpenDataSource进行插入操作,可以实现指定列的插入(同一记录其他列则为NULL)
insert OPENDATASOURCE
('SQLOLEDB','Data Source=服务器ip;User ID=用户名;Password=密码')
.SXSBD.dbo.Table1(字段1,字段2)
SELECT 字段1,字段2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...sheet1$
要注意,
1。使用转义字符。写在程序中应该是c:\\temp\\test1.xls
2。导入好像只认本机文件,所以需要把excel文件上传到server,写一段代码即可