Transact-SQL进行数据导入导出方法
2007-08-16 10:28
786 查看
使用Transact-SQL进行在相同和不同是数据库之间的数据导入导出主要用到了opendatasource和openrowset这两个系统函数。注意:在导入时,如果被导入的表Table1有主键,这时就要判断Table1的主键是否会存在相同的值,如果存在是导入不成功的,只有主键唯一的情况才能导入成功。
Table1:被导入数据的表
Table2: 数据来源表
SourcePath: Access数据库和Excel文件的路径
FieldName: 字段
Value: 值
1. SQL Server同数据库之间进行数据导入(INSERT INTO,UPDATE SET)
a. 导入一条记录
INSERT INTO Table1 (FieldName1, FieldName2,…) Values (Value1, Value2,…)
b. 批量导入
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT (FieldName1, FieldName2,…) FROM Table2
c. 修改一条记录
UPDATE Table1 SET FieldName1= Value1, FieldName2= Value2,…WHERE 条件字段=条件值
d. 批量修改
UPDATE Table1 SET Table1. FieldName1= Table2. FieldName1, Table1. FieldName2= Table2. FieldName2,… FROM Table2 WHERE Table1.FieldName3 = Table2. FieldName3
2. SQL Server同数据库之间进行数据导出(SELECTE INTO )
SELECT * INTO Table1 FROM Table2
此时Table1在SQL Server数据库是不存在的,否则导入不成功。*:代表要导入的字段
3. SQL Server不同数据库之间进行数据导入(INSERT INTO OPENDATASOURCE)
SELECT * INTO Table1 FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=127.0.01;User ID=sa;Password=' ). Table2
4. SQL Server不同数据库之间进行数据导出
INSERT INTO OPENDATASOURCE( 'SQLOLEDB', 'Data Source=127.0.01;User ID=sa;Password=' ). Table1 select * from Table2
5. SQL Server数据库从Access数据库导入数据(INSERT INTO OPENDATESOURCE)
a. Access数据库无密码
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,…FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Persist Security Info=False')... Table2
b. Access数据库有密码(123456)
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,…FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + "; User ID=Admin; Jet OLEDB:Database Password=123456;')... Table2
6. SQL Server数据库导出数据到Access数据库
a.Access数据库无密码
INSERT INTO
OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + ";Persist Security Info=False')... Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,… FROM Table2
b.Access数据库有密码(123456)
INSERT INTO
OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + "; User ID=Admin; Jet OLEDB:Database Password=123456;')... Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,… FROM Table2
7. SQL Server数据库从Excel文件导入数据
SELECT * INTO Table1 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0; HDR=YES;DATADAE=" + SourcePath + "')…[Sheet1$]
在book1.xls的Sheet1中必须有和Table1表相对应的字段,否则会出错。
8. SQL Server数据库导出数据到Excel文件
INSERT INTO OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;database="+ SourcePath +"', Sheet1$ ) select FieldName1, FieldName2,… FROM Table2
提醒:在SQL Server数据库与Access数据库、Excel文件之间的数据导入导出用上述方法有个缺陷就是SQL Server数据库与Access数据库、Excel文件必须是在同一计算机上。因为Access数据库、Excel文件是本地数据库。如果是不在同一计算机,可以先把数据读出存放在内存中再写入,这是利用内存做中转站。这样速度比上述方法速度慢。由于本人水平有限,上述如有不正确,不恰当之处,请指正!
Table1:被导入数据的表
Table2: 数据来源表
SourcePath: Access数据库和Excel文件的路径
FieldName: 字段
Value: 值
1. SQL Server同数据库之间进行数据导入(INSERT INTO,UPDATE SET)
a. 导入一条记录
INSERT INTO Table1 (FieldName1, FieldName2,…) Values (Value1, Value2,…)
b. 批量导入
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT (FieldName1, FieldName2,…) FROM Table2
c. 修改一条记录
UPDATE Table1 SET FieldName1= Value1, FieldName2= Value2,…WHERE 条件字段=条件值
d. 批量修改
UPDATE Table1 SET Table1. FieldName1= Table2. FieldName1, Table1. FieldName2= Table2. FieldName2,… FROM Table2 WHERE Table1.FieldName3 = Table2. FieldName3
2. SQL Server同数据库之间进行数据导出(SELECTE INTO )
SELECT * INTO Table1 FROM Table2
此时Table1在SQL Server数据库是不存在的,否则导入不成功。*:代表要导入的字段
3. SQL Server不同数据库之间进行数据导入(INSERT INTO OPENDATASOURCE)
SELECT * INTO Table1 FROM OPENDATASOURCE( 'SQLOLEDB', 'Data Source=127.0.01;User ID=sa;Password=' ). Table2
4. SQL Server不同数据库之间进行数据导出
INSERT INTO OPENDATASOURCE( 'SQLOLEDB', 'Data Source=127.0.01;User ID=sa;Password=' ). Table1 select * from Table2
5. SQL Server数据库从Access数据库导入数据(INSERT INTO OPENDATESOURCE)
a. Access数据库无密码
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,…FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Persist Security Info=False')... Table2
b. Access数据库有密码(123456)
INSERT INTO Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,…FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + "; User ID=Admin; Jet OLEDB:Database Password=123456;')... Table2
6. SQL Server数据库导出数据到Access数据库
a.Access数据库无密码
INSERT INTO
OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + ";Persist Security Info=False')... Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,… FROM Table2
b.Access数据库有密码(123456)
INSERT INTO
OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + SourcePath + "; User ID=Admin; Jet OLEDB:Database Password=123456;')... Table1 (FieldName1, FieldName2,…) SELECT FieldName1, FieldName2,… FROM Table2
7. SQL Server数据库从Excel文件导入数据
SELECT * INTO Table1 FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0; HDR=YES;DATADAE=" + SourcePath + "')…[Sheet1$]
在book1.xls的Sheet1中必须有和Table1表相对应的字段,否则会出错。
8. SQL Server数据库导出数据到Excel文件
INSERT INTO OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;database="+ SourcePath +"', Sheet1$ ) select FieldName1, FieldName2,… FROM Table2
提醒:在SQL Server数据库与Access数据库、Excel文件之间的数据导入导出用上述方法有个缺陷就是SQL Server数据库与Access数据库、Excel文件必须是在同一计算机上。因为Access数据库、Excel文件是本地数据库。如果是不在同一计算机,可以先把数据读出存放在内存中再写入,这是利用内存做中转站。这样速度比上述方法速度慢。由于本人水平有限,上述如有不正确,不恰当之处,请指正!
相关文章推荐
- 使用Transact-SQL进行数据导入导出方法详
- Transact-SQL进行数据导入导出方法
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解[转]
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解(转)
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法详解
- 使用Transact-SQL进行数据导入导出方法
- 使用T-SQL进行数据导入导出方法详解
- 【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法
- ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法
- MySQL数据导入导出方法与工具介绍(2-import from sql
- 数据导入导出方法与工具介绍(2-importfromsqlfiles)
- SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出