當前位置:首頁 » 編程語言 » sql資料庫表與表的同步

sql資料庫表與表的同步

發布時間: 2022-09-04 20:03:01

『壹』 sql如何將兩個表裡的數據同步

可以通過sql觸發器來實現。

例下列觸發器代碼 :

createtriggertri_kszb_insert
onygpx_kszb--操作的表名
forinsert--給表插入一條數據的時候觸發
as
declare@kssjdatetime
declare@sqbhchar(40)
select@kssj=kssj,@sqbh=sqbhfrominserted--把插入的數據的保存到變數
insertintoygpx_kszb2values(@kssj,@sqbh)--同步插入到另一表

以上觸發器可以實現,在表ygpx_kszb中插入數據,同步插入到表ygpx_kszb2 。

觸發器還可以針對表的insert,delete, update 操作時安裝要求執行數據同步的操作,即可實現兩個表裡的數據同步。

『貳』 如何實現兩個SQL資料庫的同步操作

sql同步使用dblink同步數據。
具體參考實例:
1、在win下創建linux的DBLINK
a.查看linux下的tnsnames.ora文件
[oracle@myrac1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /s01/app/oracle/proct/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
HJJ =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myrac1.oracle.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = hjj)
)
)
b.創建dblink
SQL> create database link win_lin_link connect to hjj identified by xxxx
2 using '(DESCRIPTION =
3 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.171)(PORT = 1521))
4 (CONNECT_DATA =
5 (SERVER = DEDICATED)
6 (SERVICE_NAME = hjj)
7 )
8 )'
9 /
Database link created.
2.在win下創建trigger
SQL> create or replace trigger trig_win_emp
2 after insert on emp
3 for each row
4 begin
5 insert into emp@win_lin_link values(:new.empno,:new.empname,:new.empsalary);
6 end;
7 /
Trigger created.
3.測試
4.結果
win下插入數據
SQL> insert into emp values('E001','LYN',2300);
1 row created.
SQL>COMMIT;
Commit complete.
SQL> select *from emp;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
SQL> select * from emp@win_lin_link;
EMPNO EMPNAME EMPSALARY
---------------------------------------- ---------------------------------------- ----------
E001 LYN 2300
linux下查看數據
SQL> select * from emp;
EMPNO EMPNAME EMPSALARY
-------------------- -------------------- ----------
E001 LYN 2300

『叄』 sql中如何實現兩張表的數據同步

用觸發器,在增加,刪除,修改時操作另一個表,使其數據和該表同步;

『肆』 MSSQL 同一伺服器不同資料庫間表數據同步,有什麼好的方法,分兩種吧,即時的和延遲的

同一伺服器的不同資料庫間可以直接訪問,比如兩個資料庫DB1,DB2
當前連接的是DB1,可以用 select * from db2.dbo.table1 來訪問DB2的表。 其中dbo是資料庫所有者,默認為dbo。 還需要連接DB1的用戶對兩個資料庫都有許可權。

關於同步,延遲的方法比較單一,做一個存儲,加在作業里,定時調用即可。
即時的可以分兩種思路,第一可以用觸發器的方式,在db1中需要同步的表裡,創建觸發器,當有數據操作的時候觸發,同步數據。
第二種思路,是前台事務操作db1的數據表的時候,同時寫db2的數據表,兩個操作放在同一個事務中。
兩種方法各有好處,個人推薦第一種。
以上思路基於sql server 2005,之後的版本了解不夠多,不知道有沒有出什麼更好的工具啥的。

『伍』 sql資料庫中如何做到表與表之間欄位的同步更新刪除

使用外鍵!!將要同步的2個表進內的欄位進行連接。前提要將兩個表中的欄位設為主鍵或唯一建。詳情請查詢書中的關於外鍵的描述!!

『陸』 SQL 如何使兩張表同步

begin
for ind in (select distinct id
from A
where biao=0)
loop
insert into B values(ind.id,0);
update A
set biao=0
where id = ind.id;
commit;
end loop;
end;
/

『柒』 sql如何將兩個表裡的數據同步

使用 merge into。

『捌』 sql2000 在同一個資料庫一張表的修改,同步到另一張表。

可以建觸發器來實現:
更新
Create
Trigger
truTable1
On
表1
for
Update
-------------------------------------------------------
--Memo
:
臨時寫寫的,給你作個Sample。沒有調試阿。
-------------------------------------------------------
As
Update
表2
Set
表2.Name=i.username
,表2.CardID=i.usercardno
From
表2
,
Deleted
d
,Inserted
i
表2.CardID=d.usercardno
and
d.userstate
=
'0'
刪除
Create
trigger
trdTable1
On
表1
for
Delete
-------------------------------------------------------
--Memo
:
臨時寫寫的,給你作個Sample。沒有調試阿。
-------------------------------------------------------
As
Delete
表2
From
表2,
Deleted
d
Where
表2.CardID=d.usercardno
and
d.userstate
=
'0'
【有疑問可以HI我,或追問,但請不要關閉問題,謝謝!】

『玖』 在SQL中 如何實現不同資料庫的兩張表的同步

你可以分三個來寫,分別用來監視insert\delete\update三個(這樣寫容易完成),我下面寫一個,你其它有可以參照下面這個來寫
--插入行的情況
CREATE TRIGGER [填入觸發器名] ON [dbo].[表名]
FOR INSERT
AS

insert [另外一個資料庫名].[dbo].[表名] select * from inserted

你也可以參照料我下面這段,寫在一起,但比較麻煩,我就不具體按你要求的寫了羅.
CREATE trigger [資料庫A.tr_user] on [user]
/* 觸發器 在資料庫A的user表建立一個名字tr_user的觸發器 */
for update,insert,delete
/*監視 修改 插入 刪除*/
as
if not exists (select * from deleted)
/* 如果deleted表為空,那麼 */
insert 資料庫B..[user](username,userpass,landtime) select username,password,lastlogin from inserted
/* 將inserted表(就是對於觸發器來說剛剛被插入的集合)插入到B.user */
else if not exists (select * from inserted)--刪除
/* 否則 如果 inserted集合為空 */
delete 資料庫B..[user] where id in (select userid from deleted)
/* 那麼刪除B.user下id是deleted集合中出現的id 這里用了in */
else--更新
update [user]
set
[user].username=i.username,
[user].userpass=i.password
from 資料庫B..[user] as [user],
inserted as i
where [user].id=i.userid
/* update就很明顯了,凡是updated的都來更新,保持一樣就可以了 */
alter table 資料庫B..[user] ENABLE TRIGGER [資料庫B.tr_user]

『拾』 SQL兩個資料庫間的數據同步

建議使用ETL工具實現,你可以使用kettle,可以實現資料庫之間的數據同步。完全可視化操作。
你可以網路一下資料。

熱點內容
可緩存影視 發布:2025-01-15 07:42:50 瀏覽:799
php函數默認值 發布:2025-01-15 07:34:31 瀏覽:238
編譯應用後apk無法打開 發布:2025-01-15 07:33:45 瀏覽:437
lc腳本編輯器 發布:2025-01-15 07:18:59 瀏覽:528
追劇腳本 發布:2025-01-15 07:00:39 瀏覽:446
c語言字元串庫函數 發布:2025-01-15 06:54:49 瀏覽:526
c語言的工作 發布:2025-01-15 06:50:50 瀏覽:521
口語交際訪問 發布:2025-01-15 06:44:13 瀏覽:329
編程少兒學習 發布:2025-01-15 06:39:03 瀏覽:504
伺服器搭建怎麼設置 發布:2025-01-15 06:39:01 瀏覽:152