如何讓遠端資料庫中的1張表匯入到本地資料庫中

2022-07-30 04:21:10 字數 2780 閱讀 3121

在本地資料庫執行如下的語句:

insert into info

select *

from opendatasource('sqloledb', 'data source=[server name];user id=[user id];password=[password]').myserver.dbo.info

說明:

(1)server name:資料庫伺服器的名稱,也可以是ip位址。

(2)user id:登入伺服器的使用者id號。

(3)password:使用者密碼。

(4)下面的語句最好寫在乙個儲存過程中執行,一定不要放在sql屬性中。

不使用鏈結的伺服器名,而提供特殊的連線資訊,並將其作為四部分物件名的一部分。

語法opendatasource(provider_name, init_string)

引數provider_name

註冊為用於訪問資料來源的 ole db 提供程式的 progid 的名稱。provider_name 的資料型別為char,沒有預設值。

init_string

連線字串,這些字串將要傳遞給目標提供程式的idatainitialize介面。提供程式字串語法是以關鍵字值對為基礎的,這些關鍵字值對由分號隔開,例如:"keyword1=value; keyword2=value."

在 microsoft® data access sdk 中定義了基本語法。有關所支援的特定關鍵字值對的資訊,請參見提供程式中的文件。下表列出 init_string 引數中最常用的關鍵字。

關鍵字ole db 屬性

有效值和描述

資料來源dbprop_init_datasource

要連線的資料來源的名稱。不同的提供程式用不同的方法對此進行解釋。對於 sql server ole db 提供程式來說,這會指明伺服器的名稱。對於 jet ole db 提供程式來說,這會指明 .mdb 檔案或 .xls 檔案的完整路徑。

位置dbprop_init_location

要連線的資料庫的位置。

擴充套件屬性

dbprop_init_providerstring

提供程式特定的連線字串。

連線超時

dbprop_init_timeout

超時值,在該超時值後,連線嘗試將失敗。

使用者 id

dbprop_auth_userid

用於該連線的使用者 id。

密碼dbprop_auth_password

用於該連線的密碼。

目錄dbprop_init_catalog

連線到資料來源時的初始或缺省的目錄名稱。

注釋opendatasource 函式可以在能夠使用鏈結伺服器名的相同 transact-sql 語法位置中使用。因此,就可以將 opendatasource 用作四部分名稱的第一部分,該名稱指的是 select、insert、update 或 delete 語句中的表或檢視的名稱;或者指的是 execute 語句中的遠端儲存過程。當執行遠端儲存過程時,opendatasource 應該指的是另乙個 sql server。opendatasource 不接受引數變數。

與 openrowset 函式類似,opendatasource 應該只引用那些不經常訪問的 ole db 資料來源。對於訪問次數稍多的任何資料來源,請為它們定義鏈結的伺服器。無論 opendatasource 還是 openrowset 都不能提供鏈結的伺服器定義的全部功能,例如,安全管理以及查詢目錄資訊的能力。每次呼叫 opendatasource 時,都必須提供所有的連線資訊(包括密碼)。

示例下面的示例訪問來自某個表的資料,該錶在 sql server 的另乙個例項中。

select

*from

opendatasource('

sqloledb',

'data source=servername;user id=myuid;password=mypass

').northwind.dbo.categories

下面是個查詢的示例,它通過用於 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

')...xactio

ns如:

select

*from

opendatasource('

sqloledb',

'data source=192.168.0.123;user id=[sa];password=[pwd]).database.dbo.[table] where id=33266

sql server 阻止了對元件 'ad hoc distributed queries' 的

statement'openrowset/opendatasource' 的訪問,

因為此元件已作為此伺服器安全配置的一部分而被關閉。

系統管理員可以通過使用 sp_configure 啟用 'ad hoc distributed queries'。

有關啟用 'ad hoc distributed queries' 的詳細資訊,

請參閱 sql server 聯機叢書中的 "外圍應用配置器"。

linux下匯出匯入遠端資料庫中的資料

1.在linux終端輸入以下命令進行資料庫的匯出 ls 查詢所在資料夾中的檔案 mysqldump h 所要連線的資料庫的ip位址 如果是本機的話就是 127.0.0.1 u使用者名稱 p使用者密碼 在連線的資料庫中所要匯出的資料庫的名字 匯出到此資料夾下後此.sql檔案的名字 以上mysqldum...

如何刪除mysql資料庫某張表中完全重複資料

對於刪除資料表中某個字段重複的內容,使用語法具體如下 delete from 表名 where 自增欄位名 not in select bid from select min 自增欄位名 as bid from 表名 group by 欄位名 as b 具體例子如下 delete from posi...

把遠端資料庫中的資料匯入到本地資料庫

建立鏈結伺服器 exec sp addlinkedserver srv lnk sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin srv lnk false null,使用者名稱 密碼 go 查詢示例 select from srv lnk.資料庫名.db...