SQL同步主子表資料

2021-10-04 21:09:27 字數 1428 閱讀 3273

--主表不同資料

select * from [bd]..taba  where tabaid not in (select tabaid from [fwq]..taba);

--子表不同資料

select b.* from [bd]..tabb b join [bd]..taba a on a.tabaid=b.tabaid where a.tabaid not in (select tabaid from [fwq]..taba));

--從本地同步到伺服器 本地庫名:bd 伺服器庫名:fwq 主表:taba 子表:tabb   

declare @i  int=0;              --迴圈初始值

declare @j  int=0;              --迴圈總記錄數

declare @tabaid  int=0;             --主表主鍵

declare @newtabaid  int=0;          --插入後生成的主鍵

select @j = count(1) from [bd]..taba where tabaid not in (select tabaid from [fwq]..taba); 

--獲取最大的一條主表記錄

select top 1 @tabaid = tabaid from [bd]..taba where tabaid not in (select tabaid from [fwq]..taba) order by tabaid desc;

while @i<@j

begin 

--插入主表不同資料    

insert into [fwq]..taba    (tabaname,tabaorder)

select tabaname,tabaorder from [bd]..taba where tabaid = @tabaid;

--返回主表主鍵

select @newtabaid = @@identity;

--輸出新舊主鍵

select @tabaid 原主鍵,@newtabaid 新主鍵

--根據主表主鍵,插入子表資料

insert into [fwq]..tabb    (tabaid,tabbname,tabborder)

select @newtabaid,tabbname,tabborder from [bd]..tabb where tabaid = @tabaid;

--獲取下一條主表記錄(<@tabaid)

select top 1 @tabaid = tabaid from [bd]..taba  where tabaid not in (select tabaid from [fwq]..taba) and tabaid < @tabaid order by tabaid desc 

set @i=@i+1

end; 

SQL查詢主表資料和子表部分資料統計

查詢 子表中,不同的型別統計,主表 幾千條,子表60萬資料,下面查詢花了 40秒。select su.select count from dtl e where e.check stat eq and e.batch no su.batch no eq,select count from dtl w...

raw contact子表資料查詢

raw contact子表的查詢很有意思。raw contact子表有很多。主要的有 android.provider.contactscontract.commondatakinds.structuredname android.provider.contactscontract.commonda...

跟我學SQL 七 從子表裡刪除資料

在這篇文章裡我要描述一下如何從 裡刪除列,要刪除的這些列同時還要依賴於其他 的標準。要解決這個問題就需要乙個很聰明而且完全遵守sql92子查詢宣告的應用程式。我必須提醒讀者的是,儘管查詢可能會遵守sql的標準,但是眾多的資料庫生產商會以不同的句法支援實現sql。以下這個解決方案應該適合於大多數資料庫...