不同的資料庫
⑴ 不同的資料庫不同欄位的同步
--測試環境mssql2008
--表1在資料庫1
CreateTAble表1
(
idint,
姓名varchar(10),
電話Varchar(20),
地址Varchar(30)
)
--表2在資料庫2
CreateTable表2
(
jidint,
nameVarchar(10),
telVarchar(20),
[add]Varchar(30)
)
--問題一
--在資料庫1執行
insertinto表1(id,姓名,電話,地址)
selectID,name,tel,[add]from資料庫2.dbo.表2
--問題二
--創建觸發器
--表1新增同步表2,按id對應,如果不存在則新增,否則就更新
--在資料庫1執行
createtriggertr_inserton表1
forinsert
as
begin
Merge資料庫2.dbo.表2AsA
using
(
select*frominserted
)B
onA.jid=B.id
WhenmatchedThen
UpdateSetA.name=B.姓名,
A.Tel=B.電話,A.[add]=B.地址
WhennotmatchedThen
InsertValues(B.id,B.姓名,B.電話,B.地址);
End
⑵ 怎樣把兩個不同資料庫里的表對比
是查找temp1和temp2表明不相同的么?如果僅僅是查找表明不同的那好辦,一條語句就可以搞定。
Select TABLE_NAME FROM temp1.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' where TABLE_NAME not in(
Select TABLE_NAME FROM temp2.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE')
如果還要查找數據表結構的不同,可以試下這個語句
Select temp1.dbo.sysobjects.name as Table_name, temp1.dbo.syscolumns.name AS Column_name
FROM temp1.dbo.syscolumns INNER JOIN
temp1.dbo.sysobjects ON temp1.dbo.syscolumns.id = temp1.dbo.sysobjects.id
Where (temp1.dbo.sysobjects.xtype = 'u') AND (NOT (temp1.dbo.sysobjects.name LIKE 'dtproperties'))
--可以查詢資料庫中所有的表和欄位的數據,然後兩個表的比較就行了。我就不寫了
⑶ 不同資料庫的使用的sql有什麼區別啊
sql語句的寫法是一樣的`
但是裡面的欄位肯定是不同的``
⑷ 不同的資料庫支持的sql語句都相同么
sql語句的寫法都很類似,但不同資料庫基本都有自己專用的函數(微軟還自己搞了一堆標准),如果sql語句用到了這些函數那就不能通用了,比如取當前日期,sqlserver是select getdate();oracle 是select sysdate from al;類似的不同還很多.
⑸ 怎樣把兩個不同資料庫中的表做關聯查詢呢
1、創建產品及訂單兩張測試表,
create table test_proct(prodid number, prodname varchar2(200));
create table test_order(orderid number, prodid number);
⑹ 如何比較兩個資料庫的差異
比較資料庫可以通過以下方式:
比較的資料庫分別稱為「源」和「目標」。說明:資料庫項目不包含任何數據。因此,在數據比較中資料庫項目不能作為源或目標。
比較數據時,會生成數據操作語言 (DML) 腳本,使用該腳本可以通過更新目標資料庫中的某些或全部數據來同步不同的資料庫。完成數據比較後,結果會出現在 Visual Studio 的「數據比較」窗口中。有關更多信息,請參見比較資料庫數據概述。說明:還可以比較兩個資料庫的架構或同一資料庫的兩個版本的架構。
比較兩個資料庫的架構。比較資料庫數據比較兩個資料庫的數據在「數據」菜單上指向「數據比較」,然後單擊「新建數據比較」。將出現「數據比較」向導。而且,會打開「數據比較」窗口,並且 Visual Studio 會自動為其指定一個名稱,如 DataCompare1。在「數據比較」向導中,確定源資料庫和目標資料庫。如果「源資料庫」列表或「目標資料庫」列表為空,請單擊「新建連接」。在「連接屬性」對話框中,確定資料庫所駐留的伺服器以及連接資料庫時將要使用的身份驗證類型。然後,單擊「確定」關閉「連接屬性」對話框並返回到「數據比較」向導。在「數據比較」向導的第一頁上,驗證每個資料庫的信息均是正確的,指定要在結果中包括的記錄,然後單擊「下一頁」。「數據比較」向導的第二頁將出現並顯示資料庫中表和視圖的層次結構列表。說明:表和視圖必須滿足兩個條件才會出現在列表中。第一個條件是,源資料庫對象和目標資料庫對象的架構必須匹配。第二個條件是,該列表中僅顯示具有主鍵或唯一鍵的表和視圖。
還可以更新目標資料庫中的部分或全部數據,以與源資料庫中的數據匹配。有關更多信息,請參見如何:查看數據差異和如何:同步資料庫數據。
⑺ 兩個不同的資料庫,怎樣把一個資料庫的內容插到另一個表中
以mysql資料庫為例分情況一一說明:
兩張表:insertTest和insertTest2,前者中有測試數據
create table insertTest(id int(4),name varchar(12));
insert into insertTest values(100,'liudehua');
insert into insertTest values(101,'zhourunfa');
insert into insertTest values(102,'zhouhuajian');
1.如果2張表的欄位一致,並且希望插入全部數據,可以用這種方法:
INSERT INTO 目標表 SELECT * FROM 來源表;
insert into insertTest select * from insertTest2;
2.如果只希望導入指定欄位,可以用這種方法:
INSERT INTO 目標表 (欄位1, 欄位2, ...) SELECT 欄位1, 欄位2, ... FROM 來源表;
注意欄位的順序必須一致。
insert into insertTest2(id) select id from insertTest2;
3.如果您需要只導入目標表中不存在的記錄,可以使用這種方法:
INSERT INTO 目標表
(欄位1, 欄位2, ...)
SELECT 欄位1, 欄位2, ...
FROM 來源表
WHERE not exists (select * from 目標表
where 目標表.比較欄位 = 來源表.比較欄位);
⑻ sql資料庫中跨不同資料庫伺服器的查詢
--SQLServer跨伺服器查詢
--創建鏈接伺服器(連接的保密要自己想辦法解決啦!)
execsp_addlinkedserver'LKSV','','SQLOLEDB','遠程伺服器名或ip地址'
execsp_addlinkedsrvlogin'LKSV','false',null,'用戶名','密碼'
--查詢實例
select*fromLKSV.資料庫名.dbo.表名
⑼ 資料庫的區別
網路資料庫通常使用Oracle或者DB2,兩者都是大型資料庫,有通用性,但是不是完全一致,特別是在兩個庫里交叉調用數據會很慢,所以不建議同時使用兩種不同類型的資料庫。
「資料庫空間」簡單的說就是硬碟空間,一般網路伺服器是使用硬碟矩陣來儲存海量數據的,比如163郵箱、網路空間可以免費2G,再多就需要繳費了,畢竟服務商的服務也有成本。需要多少空間就看你想存放多少資料了,如果自己有伺服器,可以使用鏈接的方式鏈接自己伺服器上的資料庫,就可以減少網路空間費用,但是同時需要增加帶寬和伺服器的並發性能,所以還要綜合考慮。畢竟對於你的客戶來講,你提供服務的快捷和方便是第一位的。
⑽ 怎麼在不同資料庫之間進行同步數據
怎麼在不同資料庫之間進行同步數據
資料庫A和資料庫B是建立在兩台獨立的資料庫伺服器上,回那麼采答用dblink方式是一種可行的方式,存在兩個數據同步過程:
一、資料庫A正常運行的時候需要將數據同步到備用庫即資料庫B;
二、資料庫A不正常的時候啟用資料庫B,在資料庫A恢復正常之前的數據更新都發生在資料庫B,那麼需要將資料庫B的數據同步給資料庫A。
第一種方式:前提是資料庫A和資料庫B本地網是24小時互通的同時對數據同步實時性有比較高的要求,那麼可以建立DBLINK,在兩個庫都建觸發器,不管當前在哪個庫發生數據更新的時候實時同步數據到目標資料庫;