tft每日頭條

 > 科技

 > sql如何導入服務器數據庫

sql如何導入服務器數據庫

科技 更新时间:2024-12-05 08:24:52

之前有個同學問我,本地數據庫插入新數據時怎麼同步到服務器上,當時我先想到是程序邏輯控制,作相應的處理。

但有時候我們程序不太好處理,那能不能從數據庫入手呢,數據庫不是有觸發器(trigger)嗎,應該是可以的,這裡就用這個來做吧。一些東西也是不太懂,網上找的資料,感謝那些人默默奉獻的好人。如有誤解,歡迎各位大神指正!

1、首先,了解什麼是觸發器

觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發,當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用于加強數據的完整性約束和業務規則等。 觸發器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據在字典中查到。

簡單講下創建trigger的語法:

sql如何導入服務器數據庫(本地數據庫sqlserver)1

CREATE TRIGGER trigger_name ON table_name [WITH ENCRYPTION] FOR | AFTER | INSTEAD OF [DELETE, INSERT, UPDATE] AS T-SQL語句 GO

sql如何導入服務器數據庫(本地數據庫sqlserver)2

2、怎麼連接到服務器的數據庫

sql如何導入服務器數據庫(本地數據庫sqlserver)3

select * from sys.servers --查看當前的服務 EXEC sp_addlinkedserver @server='black',--被訪問的服務器别名(習慣上直接使用目标服務器IP,或取個别名如:black) @srvproduct='', @provider='SQLOLEDB', @datasrc='192.168.1.36', --要訪問的服務器 @catalog='anmax' --數據庫名稱 exec sp_addlinkedsrvlogin 'black','false',null,'sa','sa123456' --(balck->前面取的别名;sa->數據庫用戶名;sa123456->密碼) select top 10 * from [black].[anmax].dbo.ad --測試是否成功 exec sp_droplinkedsrvlogin 'black',null --移除登陸用戶 exec sp_dropserver 'black' --移除服務

sql如何導入服務器數據庫(本地數據庫sqlserver)4

3、同步插入的數據

sql如何導入服務器數據庫(本地數據庫sqlserver)5

create trigger trgtest on product after insert as begin --select * from sys.servers --查看當前的服務 EXEC sp_addlinkedserver @server='black',--被訪問的服務器别名(習慣上直接使用目标服務器IP,或取個别名如:JOY) @srvproduct='', @provider='SQLOLEDB', @datasrc='192.168.1.36', --要訪問的服務器 @catalog='anmax' --數據庫名稱 exec sp_addlinkedsrvlogin 'black','false',null,'sa','sa123456' --執行同步代碼 declare @proId int; set @proId=@@identity;--插入的數據ID select * into [你服務器表] from product where productid=@Proid exec sp_droplinkedsrvlogin 'black',null exec sp_dropserver 'black' end

sql如何導入服務器數據庫(本地數據庫sqlserver)6

期間遇到些問題:開啟TCP/IP協議

sql如何導入服務器數據庫(本地數據庫sqlserver)7

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved