天天看點

在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')

-----------------------------------------------------------------------------------------------

轉載于:https://www.cnblogs.com/rabtor/archive/2012/08/28/2660287.html