在SQL SERVER里查询access数据[转]

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/DB.mdb";User ID=Admin;Password=')...表名
select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/db.mdb";User
ID=Admin;Password=')...Student where name = '我'
select * from newTable
-----------------------------------------------------------------------------------------------
--
2.将access导入SQL server
-- ======================================================
在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:/DB.mdb";User ID=Admin;Password=' )...表名
-----------------------------------------------------------------------------------------------
--
3.将SQL SERVER表里的数据插入到Access表中
-- ======================================================
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=" c:/DB.mdb";User ID=Admin;Password=')...表名
(列名1,列名2)
select 列名1,列名2 from sql表
实例:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
   'C:/db.mdb';'admin';'', Test)
select id,name from Test
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:/trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename


insert into OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/db.mdb";User
ID=Admin;Password=')...Student(studentid,name) select staffid,name from staff
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
   'D:/db.mdb';'admin';'', Student)
select accountid,name from tblbaccount
select * from openrowset('Microsoft.Jet.OLEDB.4.0','D:/db.mdb';'admin';'',Student)
-----------------------------------------------------------------------------------------------
--
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的
访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用
'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL
Server 联机丛书中的 "外围应用配置器"。
查询相关资料,找到解决方法: 启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced
options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 使用完成后,
关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure
exec sp_configure 'show advanced options',0 reconfigure
exec sp_configure 'show advanced options',1 reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure
SELECT *
INTO car
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
      'Data Source="D:/GCLsoft/jz/Debug/jzdata.mdb";User ID=Admin;Password=' )...car
SELECT *
INTO moto
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
      'Data Source="D:/GCLsoft/jz/Debug/jzdata.mdb";User ID=Admin;Password=' )...moto
-------------------------
oracle 设置主键、修改列等sql语句(转载)2010-01-11 11:59
规则表---〉分区表
索引组织表

修改列名
alter table 表明 rename column rename 老列名 to 新列名
添加 字段
alter table 表名 add(字段名 类型);
删除字段
alter table 表名 drop column 字段名
修改列属性
alter table 表名 modify (字段名 新属性)
设置某一个字段为无用状态
alter table 表名 set unuesed column 字段名
删除无用字段
alert table 表名 drop unused cloumns
添加主键
alert table 表名 add constraint pkKey primary key(字段列表)
表分区
oracle 允许用户对标进一步的规划,即对标进一步的拆分,将表分成若干个逻辑部分,
每个部分成其为标的分区
表分区的优点
增强可用性。单个分区出现故障不会影响到其它分区
均衡IO。不同的分区可以影射到不同的磁盘中
改善性能
范围分区法
这种分区方法是根据表中的列值的范围对标进行分区
分区时, 首先依据列中得值的可能的范围进行划分
例:
create table student

studentId integer not null,
studentName varchar2(20),
scroe integer

partition by rang(Score)
(
partition p1 values lessthan(60),
partition p2 values lessthan(70),
partition p3 values lessthan(80),
partition p4 values lessthan(maxvalue),
) ;
散列分区
散列分区法提供了一种通过制定分区编号来均匀地分布数据的方法
他通过hash 函数间数据映射到相应的分区上
它使得数据均匀的分配到各分区上,各分区大小趋向一致
例:
create table department

depno integer not null,
depname varchar2(20),

partition by hash(depno)
(
partition p1 ,
partition p2,
) ;
复合分区
复合分区是先对数据进行范围分区,然后在每个字分区理由进行散列分区的一种分区方法
例:
create table salgrade
(grade number ,losal number hisal number , hisal number )
partition by rang(grade)
subpartition by hash (losal, hisal)(
partition p1 value lessthan (10),
(subpartition sp1,subpartition sp2),
partition p1 value lessthan (20),
(subpartition sp3,subpartition sp4),
)
列表分区
列表分区允许用户明确的控制行到分区的映射
不同的范围分区或列分区,他运许按自然的方式对无序和不相干的数据集进行分组的组织
例如:
partition by list(字段)
(
partition 列名称 values (值列表),
partition 列名称 values (值列表),
。。。
。。。
partition 列名称 values (值列表)
)
指定的分区中查询
select * from tableName partition(p1)
表分区的维护
移动,添加,删除,结合, 截断,拆分,合并,交换
 


SQL SERVER 与ACCESS、EXCEL的数据转换
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用
Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、
OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL
SERVER、ACCESS、EXCEL数据转换,详细说明如下:
一、SQL SERVER 和ACCESS的数据导入导出
常规的数据导入导出:
使用DTS向导迁移你的Access数据到SQL Server,你可以使用这些步骤:
1在SQL SERVER企业管理器中的Tools(工具)菜单上,选择Data Transformation
2Services(数据转换服务),然后选择 czdImport Data(导入数据)。
3在Choose a Data Source(选择数据源)对话框中选择Microsoft Access as the Source,然后键入你
的.mdb数据库(.mdb文件扩展名)的文件名或通过浏览寻找该文件。
4在Choose a Destination(选择目标)对话框中,选择Microsoft OLE DB Prov ider for SQL Server,选
择数据库服务器,然后单击必要的验证方式。
5在Specify Table Copy(指定表格复制)或Query(查询)对话框中,单击Copy tables(复制表格)。
6在Select Source Tables(选择源表格)对话框中,单击Select All(全部选定)。下一步,完成。
Transact-SQL语句进行导入导出:
1.在SQL SERVER里查询access数据:
-- ======================================================
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/DB.mdb";User ID=Admin;Password=')...表名
-----------------------------------------------------------------------------------------------
--
2.将access导入SQL server
-- ======================================================
在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/DB.mdb";User ID=Admin;Password=' )...表名
-----------------------------------------------------------------------------------------------
--
3.将SQL SERVER表里的数据插入到Access表中
-- ======================================================
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=" c:/DB.mdb";User ID=Admin;Password=')...表名
(列名1,列名2)
select 列名1,列名2 from sql表
实例:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:/db.mdb';'admin';'', Test)
select id,name from Test
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:/trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename
-----------------------------------------------------------------------------------------------
--
二、SQL SERVER 和EXCEL的数据导入导出
1、在SQL SERVER里查询Excel数据:
-- ======================================================
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
SELECT *
FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel
5.0')...xactions
-----------------------------------------------------------------------------------------------
--
2、将Excel的数据导入SQL server :
-- ======================================================
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]
实例:
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel
5.0')...xactions
-----------------------------------------------------------------------------------------------
--
3、将SQL SERVER中查询到的数据导成一个Excel文件
-- ======================================================
T-SQL代码:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:/Temp.xls -c -q -S"servername" -U"sa" -P""'
参数:S 是SQL服务器名;U是用户;P是密码
说明:还可以导出文本文件等多种格式
实例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:/temp1.xls -c -q -
S"pmserver" -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname"
queryout C:/ authors.xls -c -Sservername -Usa -Ppassword'
在VB6中应用ADO导出EXCEL文件代码:
Dim cn As New ADODB.Connection
cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:/DT.xls
-c -Sservername -Usa -Ppassword'"
------------------------------------------------------------------------------------------------
4、在SQL SERVER里往Excel插入数据:
-- ======================================================
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1
(A1,A2,A3) values (1,2,3)
T-SQL代码:
INSERT INTO
OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
'Extended Properties=Excel 8.0;Data source=C:/training/inventur.xls')...[Filiale1$]
(bestand, produkt) VALUES (20, 'Test')
-----------------------------------------------------------------------------------------------

你可能感兴趣的:(在SQL SERVER里查询access数据[转])