导入数据不一定要用OPENSET函数,可以用更简单的方法,步骤如下:
1、首先双击打开sqlserver,右击需要导入数据的数据库,如图所示。
2、点击任务,再点击任务中的导入数据选项,打开导入导出数据向导界面。
3、在向导界面点击下一步,进入下图界面依次填写需要的内容:数据源Excel,文件路径,以及Excel版本,填好后点击下一步(如果Excel其他版本不行的话,就选择Excel97-03的,再将Excel保存为相应版本)即可。
4、然后就是目标数据库设置:目标选择msslserver,服务器名称不用变,身份验证输入相应的密码,数据库选择对应的数据库,设置好后点击下一步。
5、然后来到图示界面,直接默认选项即可,点击下一步。
6、图示界面,可以自定义目标数据库(表在数据库中可以不存在),点击预览即可以看到导入之后的表状态,如图。
7、上一步完成后再继续下一步,最后点击完成,即可导入成功,如图。
8、最后在数据库中检查一下导入的表数据,附上导入的Excel数据为例。
扩展资料:
导入数据也可使用OPENROWSET函数,但使用该函数之前必须先启用AdHocDistributedQueries服务,因为这个服务不安全所以SqlServer默认是关闭的,系统管理员可以通过使用sp_configure启用'AdHocDistributedQueries'。
但有一个问题一定要特别注意,由于 'AdHocDistributedQueries'这个服务存在着较大的安全隐患,所以切记使用完毕之后一定要关闭。
所以,如果是导入数据建议不要使用OPENROWSET函数,弊大于利。
1、打开Excel,选择数据选项卡,点击从其他来源获取数据,选择从SQL Server获取数据。2、在连接到数据源对话框中,输入SQL Server的名称和登录信息,点击下一步。
3、在选择如何建立连接对话框中,选择使用特定的用户名和密码,输入数据库的用户名和密码,点击下一步。
4、在选择数据库和表对话框中,选择需要连接的数据库和表,点击下一步。
5、在编辑查询对话框中,输入SQL语句,将多个表联系起来。
6、点击确定按钮,Excel会自动执行SQL语句,并将结果显示在工作表中。
完整代码如下 <% On Error Resume Next 导入Excel电子表格数据到SQL Sever数据库 By Dicky : : Function Open_Conn(SqlDatabaseName SqlPassword SqlUsername SqlLocalName SqlConn) 创建数据库连接对象并打开数据库连接 Dim ConnStr SQL Server数据库连接参数 数据库名 用户密码 用户名 连接名(本地用local 外地用IP) ConnStr = Provider=SqloledbUser ID= &SqlUsername &Password= &SqlPassword &Initial Catalog = &SqlDatabaseName &Data Source= &SqlLocalName & Set SqlConn = Server CreateObject( ADODB Connection ) SqlConn Open ConnStr If Err Then Err Clear Set SqlConn = Nothing Response Write 数据连接错误! Response End End IfEnd FunctionFunction Close_Conn(SqlConn) 关闭数据库连接并清除数据库连接对象 If IsObject(SqlConn) Then SqlConn Close Set SqlConn = Nothing End IfEnd FunctionCall Open_Conn( Shat_EDG sa (local) SqlConn) 打开本地SQL Server数据库连接Call Open_Conn( Shat_EDG sa ssh SqlConn ) 打开远程SQL Server数据库连接Function Get_EMP_CnName(NTACCNT) 根据用户NT帐号得到用户中文名 Dim Sql Rs Sql = Select EMP_CNAME From RF_EMPLOYEE Where EMP_NTACCNT= &NTACCNT& Set Rs = Server CreateObject( Adodb RecordSet ) Rs Open Sql SqlConn If Rs Eof Then Get_EMP_CnName = Else Get_EMP_CnName = Rs ( EMP_CNAME ) End If Rs Close Set Rs = NothingEnd Function %><><head><title>导入Excel电子表格数据到SQL Sever数据库</title><body bgcolor= #ACD AF ><center><b>导入Excel电子表格数据到SQL Sever数据库</b></center><FORM METHOD= POST name= form >请选择数据源(本地库):<SELECT NAME= Table title= 请选择需要导入数据的表 ><option></option><% Dim RsSqlDatabaseTable Set RsSqlDatabaseTable = SqlConn OpenSchema( ) Do While Not RsSqlDatabaseTable Eof %><option<%If Trim(Request( Table ))=RsSqlDatabaseTable( ) Then Response Write selected %>><%=RsSqlDatabaseTable( )%></option><% RsSqlDatabaseTable MoveNext:Loop Set RsSqlDatabaseTable = Nothing %></SELECT><input type=submit name=submit value= 开始导出 ><br>请选择目标表(远程库):<SELECT NAME= Table title= 请选择需要导入数据的表 ><option></option><% Dim RsSqlDatabaseTable Set RsSqlDatabaseTable = SqlConn OpenSchema( ) Do While Not RsSqlDatabaseTable Eof %><option<%If Trim(Request( Table ))=RsSqlDatabaseTable ( ) Then Response Write selected %>><%=RsSqlDatabaseTable ( )%></option><% RsSqlDatabaseTable MoveNext:Loop Set RsSqlDatabaseTable = Nothing %></SELECT></FORM><font color=blue>导出过程中请不要刷新页面!</font><br><%If Trim(Request( Table )) <>Then Dim Sql Rs Sql = Select * From Sheet $ Sheet $是我们实现用SQL Server自身数据转换功能得到的表名 Set Rs = SqlConn Execute(Sql) If Rs Eof And Rs Bof Then Response write 没有找到您需要的数据!!<br> Else Do While Not Rs Eof SqlInsert = Insert Into &Trim(Request( Table ))&(EDG_Project_Name EDG_Project_No EDG_Project_VM EDG_Project_VM_CnName EDG_Project_M EDG_Project_M_CnName EDG_Project_Director EDG_Project_Director_CnName) Values ( &Trim(Rs( 工程名称 ))&&Trim(Rs( 工程编号 ))&&Trim(Rs( 项目副理 ))&&Trim(Rs( 项目副理 ))&( &Get_EMP_CnName(Trim(Rs( 项目副理 )))&) &&Trim(Rs( 项目经理 ))&&Trim(Rs( 项目经理 ))&( &Get_EMP_CnName(Trim(Rs( 项目经理 )))&) &&Trim(Rs( 项目总监 ))&&Trim(Rs( 项目总监 ))&( &Get_EMP_CnName(Trim(Rs( 项目总监 )))&) &) Response Write SqlInsert 此处插入的值根据实际数据库结构进行调整 SqlConn Execute(SqlInsert) 插入Excel表格里所有东东 Rs MoveNext Loop Response Write <font color=red>恭喜 成功导出数据!^_^</font><br> End If Rs Close Set Rs = NothingEnd IfCall Close_Conn(SqlConn) 关闭Excel数据库连接Call Close_Conn(SqlConn ) 关闭SQL Server数据库连接 %></body></>lishixinzhi/Article/program/net/201311/12903
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)