以下均以SQL2000、VFP6及以上的表为例。代码导入:查询分析器中执行如下语句(先选择对应的数据库)————-如果接受导入数据的SQL表已存在–如果接受导入数据的SQL表已经存在Insert Into 已经存在的SQL表名 Select * From openrowset(‘MSDASQL’,’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,’select * from aa.DBF’)。
以下均以SQL2000、VFP6及以上的表为例
代码导入:查询分析器中执行如下语句(先选择对应的数据库)
————-如果接受导入数据的SQL表已存在
–如果接受导入数据的SQL表已经存在
Insert Into 已经存在的SQL表名 Select * From openrowset(‘MSDASQL’,’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,’select * from aa.DBF’)
–也可以对应列名进行导入,如:
Insert Into 已经存在的SQL表名 (列名1,列名2…) Select (对应列名1,对应列名2…) From openrowset(‘MSDASQL’,’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,’select * from aa.DBF’)
————-如果接受导入数据的SQL表不存在,导入时创建
–方法一:有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
Select * Into 要生成的SQL表名 From openrowset(‘MSDASQL’,’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,’select * from dbf表名.DBF’)
–需要安装Visual FoxPro ODBC Driver(驱动下载:http://msdn2.microsoft.com/zh-cn/vfoxpro/Bb190233.aspx)
–方法二:有一个缺点:把DBF表导入SQL Server中后,马上用VISUAL FOXPRO打开DBF表,会提示“不能存取文件”,即这个表还被SQL打开着呢。可是过了1分钟左右,再打开DBF表就可以了,说明经过一段时间后查询分析器才把这个表关闭。
Select * Into TEMP1 From openrowset(‘VFPOLEDB.1′,’C:’;’admin’;” ,’select * from dbf表名.DBF’)
–如果没有安装VFP,需要把vfpoledb.dll拷贝到SYSTEM目录下,并注册。
–方法三:导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方式导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0′,’dBase IV;HDR=NO;IMEX=2;DATABASE=c:’,’select * from dbf表名.dbf’)
–方法四:导入SQL SERVER后,源表再用VFP打开就不提示“不能存取文件”,说明语句执行后就把源表关闭了。不过也有不尽人意的地方,就是用前两种方式导入后,源表中的字符型字段导入后SQL表字段对应变成NVARCHAR了。
Select * Into 要生成的SQL表名 From OPENROWSET(‘MICROSOFT.JET.OLEDB.4.0′,’dBase III;HDR=NO;IMEX=2;DATABASE=c:’,’select * from dbf表名.dbf’)
–方法五:用BDE驱动导入时,再用VFP打开源表时不会提示“不能存取文件”,不过有点问题:就是有时整型数据导入后变为负数了。
Select * From OPENROWSET(‘MSDASQL’,’CollatingSequence=ASCII;DBQ=D:SEND;DefaultDir=D:SEND;Deleted=0;Driver={Driver do Microsoft dBase (*.dbf)};FIL=dBase 5.0′,’select * from dbf表名.DBF’) A
–前提:先在机器上安装BDE的驱动
–也可以只导几个字段
Select * Into 要生成的SQL表名 From openrowset(‘MSDASQL’,’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:’,’select 字段1,字段2 from aa.DBF’)
/*说明:
SourceDB=c: c:是dbf文件的存放目录
aa.Dbf 是dbf文件名
*/
延伸阅读:
行式更适合OLTP,比如传统的基于增删改查操作的应用。列式更适合OLAP,非常适合于在数据仓库领域发挥作用,比如数据分析、海量存储和商业智能;涉及不经常更新的数据。
由于设计上的不同,列式数据库在并行查询处理和压缩上更有优势。而且数据是以列为单元存储,完全不用考虑数据建模或者说建模更简单了。要查询计算哪些列上的数据,直接读取列就行。
最后我们需要务实的指出,没有使用广泛的数据库,列式数据库也并非使用广泛,只不过给DBA提供了更多的选择,DBA需根据自己的应用场景自行选择。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。