/**//*add romate vendor database server*/ EXEC sp_addlinkedserver 'VendorDB', '', 'MSDASQL', NULL, NULL, 'DRIVER={SQL Server};SERVER=192.168.1.15;UID=webdev;PWD=web123dev;' GO DECLARE@maxCustomerIDINT DECLARE@maxSaleOrderIDINT DECLARE@maxSaleOrderItemIDINT SELECT@maxCustomerID=0,@maxSaleOrderID=0,@maxSaleOrderItemID=0 /**//*begin update game data for sale*/ --delete the game not exists DELETE a FROM Game a WHERE a.GameID NOTIN(SELECT GameID FROM VendorDB.Vcsale.dbo.Game) --update rows exist UPDATE a SET a.Name=b.Name, a.GoldName = b.GoldName, a.GoldUnit = b.GoldUnit, a.TradeMode = b.TradeMode, a.DirectMode = b.DirectMode, a.Type = b.Type, a.StockType = b.StockType, a.SaleStatus = b.SaleStatus FROM game a INNERJOIN VendorDB.Vcsale.dbo.Game b ON a.GameID=b.GameID AND CHECKSUM(a.Name,a.GoldName,a.GoldUnit,a.TradeMode,a.DirectMode,a.Type,a.StockType,a.SaleStatus) != CHECKSUM(b.Name,b.GoldName,b.GoldUnit,b.TradeMode,b.DirectMode,b.Type,b.StockType,b.SaleStatus) --insert new rows INSERT Game SELECT a.*FROM VendorDB.Vcsale.dbo.Game a LEFTJOIN Game b ON a.GameID=b.GameID WHERE b.GameID ISNULL /**//*end update game data for sale*/ /**//*begin update gameserver data for sale*/ --delete the server not exists DELETE a FROM GameServer a WHERENOTEXISTS(SELECT1FROM VendorDB.Vcsale.dbo.GameServer WHERE a.GameServerID = GameServerID) --update rows exist UPDATE a SET a.GameID = b.GameID, a.Name = b.Name, a.SaleStatus = b.SaleStatus, a.Price = b.Price, a.SearchCode = b.SearchCode FROM GameServer a INNERJOIN VendorDB.Vcsale.dbo.GameServer b ON a.GameServerID = b.GameServerID AND CHECKSUM(a.GameID,a.Name,a.SaleStatus,a.Price,a.SearchCode) != CHECKSUM(b.GameID,b.Name,b.SaleStatus,b.Price,b.SearchCode) --insert new rows INSERT GameServer SELECT a.*FROM VendorDB.Vcsale.dbo.GameServer a LEFTJOIN GameServer b ON a.GameServerID = b.GameServerID WHERE b.GameServerID ISNULL /**//*end update gameserver data for sale*/ /**//*begin update gametext data for sale*/ --delete the gametext not exists DELETE a FROM GameText a WHERE a.TextID NOTIN(SELECT TextID FROM VendorDB.Vcsale.dbo.GameText) --update rows exist UPDATE a SET a.GameID = b.GameID, a.Detail = b.Detail, a.PageTitle = b.PageTitle, a.GameNotice = b.GameNotice, a.IsPicGame = b.IsPicGame FROM GameText a INNERJOIN VendorDB.Vcsale.dbo.GameText b ON a.TextID = b.TextID AND CHECKSUM(a.GameID,a.Detail,a.PageTitle,a.GameNotice,a.IsPicGame) != CHECKSUM(b.GameID,b.Detail,b.PageTitle,b.GameNotice,b.IsPicGame) --insert new rows INSERT GameText SELECT a.*FROM VendorDB.Vcsale.dbo.GameText a LEFTJOIN GameText b ON a.TextID = b.TextID WHERE b.TextID ISNULL /**//*end update gametext*/ /**//*begin update servertext data for sale*/ --delete the servertext not exists DELETE a FROM ServerText a WHERENOTEXISTS(SELECT1FROM VendorDB.Vcsale.dbo.ServerText WHERE TextID = a.TextID) --update rows exist UPDATE a SET a.ServerID = b.ServerID, a.PageTitle = b.PageTitle FROM ServerText a INNERJOIN VendorDB.Vcsale.dbo.ServerText b ON a.TextID = b.TextID AND CHECKSUM(a.ServerID,a.PageTitle) != CHECKSUM(b.ServerID,b.PageTitle) --insert new rows INSERT ServerText SELECT a.*FROM VendorDB.Vcsale.dbo.ServerText a LEFTJOIN ServerText b ON a.TextID = b.TextID WHERE b.TextID ISNULL /**//*end update serverText*/ /**//*begin update saletext data for sale*/ --delete the saletext not exists DELETE a FROM SaleText a WHERE a.TextID NOTIN(SELECT TextID FROM VendorDB.Vcsale.dbo.SaleText) --update rows exist UPDATE a SET a.WithWhat = b.WithWhat, a.Content = b.Content FROM SaleText a INNERJOIN VendorDB.Vcsale.dbo.SaleText b ON a.TextID = b.TextID AND CHECKSUM(a.WithWhat,a.Content) != CHECKSUM(b.WithWhat,b.Content) --insert new rows INSERT SaleText SELECT a.*FROM VendorDB.Vcsale.dbo.SaleText a LEFTJOIN SaleText b ON a.TextID = b.TextID WHERE b.TextID ISNULL /**//*end update saletext*/ /**//*begin update tradeaddress data for sale*/ --delete the tradeaddress not exists DELETE a FROM TradeAddress a WHERE a.TradeAddressID NOTIN(SELECT TradeAddressID FROM VendorDB.Vcsale.dbo.TradeAddress) --update row exists UPDATE a SET a.GameID = b.GameID,a.Address = b.Address FROM TradeAddress a INNERJOIN VendorDB.Vcsale.dbo.TradeAddress b ON a.TradeAddressID = b.TradeAddressID AND CHECKSUM(a.GameID,a.Address) != CHECKSUM(b.GameID,b.Address) --insert new rows INSERT TradeAddress SELECT a.*FROM VendorDB.Vcsale.dbo.TradeAddress a LEFTJOIN TradeAddress b ON a.TradeAddressID = b.TradeAddressID WHERE b.TradeAddressID ISNULL /**//*end update tradeaddress*/ /**//*begin update systemconfig*/ UPDATE a SET a.SaleSiteInfoWhenClose = b.SaleSiteInfoWhenClose, a.SaleSiteStatus = b.SaleSiteStatus FROM SystemConfig a INNERJOIN VendorDB.Vcsale.dbo.SystemConfig b ON1=1AND CHECKSUM(a.SaleSiteInfoWhenClose,a.SaleSiteStatus) != CHECKSUM(b.SaleSiteInfoWhenClose,b.SaleSiteStatus) /**//*end update systemconfig*/ /**//*begin update saleblock*/ --delete the saleblock not exists DELETE a FROM SaleBlock a WHERENOTEXISTS(SELECT1FROM VendorDB.Vcsale.dbo.SaleBlock WHERE SaleBlockID = a.SaleBlockID) --update rows exist UPDATE a SET a.GameID = b.GameID, a.Amount = b.Amount, a.ChargePercent = b.ChargePercent FROM SaleBlock a INNERJOIN VendorDB.Vcsale.dbo.SaleBlock b ON a.SaleBlockID = b.SaleBlockID AND CHECKSUM(a.GameID,a.Amount,a.ChargePercent) != CHECKSUM(b.GameID,b.Amount,b.ChargePercent) --insert new rows INSERT SaleBlock SELECT a.*FROM VendorDB.Vcsale.dbo.SaleBlock a LEFTJOIN SaleBlock b ON a.SaleBlockID = b.SaleBlockID WHERE b.SaleBlockID ISNULL /**//*end update saleblock*/ /**//*update customer*/ --write new customer to vendor db INSERT VendorDB.Vcsale.dbo.Customer SELECT a.*FROM Customer a --WHERE a.CustomerID > @maxCustomerID --AND NOT EXISTS(SELECT 1 FROM FROM VendorDB.Vcsale.dbo WHERE CustomerID = a.CustomerID) LEFTJOIN VendorDB.Vcsale.dbo.Customer b ON a.CustomerID = b.CustomerID WHERE b.CustomerID ISNULL AND a.CustomerID >@maxCustomerID --update customer status for sale UPDATE a SET a.ClassID = b.ClassID, a.Consume = b.Consume FROM Customer a INNERJOIN VendorDB.Vcsale.dbo.Customer b ON a.CustomerID = b.CustomerID AND a.MailAccount = b.MailAccount AND CHECKSUM(a.ClassID,a.Consume) != CHECKSUM(b.ClassID,b.Consume) --update customer profile for vendor UPDATE a SET a.Phone = b.Phone, a.TrueName = b.TrueName, a.Non_US_Phone = b.Non_US_Phone, a.Country = b.Country, a.Area = b.Area FROM VendorDB.Vcsale.dbo.Customer a INNERJOIN Customer b ON a.CustomerID = b.CustomerID AND a.MailAccount = b.MailAccount AND CHECKSUM(a.Phone,a.TrueName,a.Non_US_Phone,a.Country,a.Area) != CHECKSUM(b.Phone,b.TrueName,b.Non_US_Phone,b.Country,b.Area) /**//*end update customer*/ /**//*update saleorder*/ --write new saleorder to vendor db INSERT VendorDB.Vcsale.dbo.SaleOrder SELECT a.*FROM SaleOrder a LEFTJOIN VendorDB.Vcsale.dbo.SaleOrder b ON a.OrderID = b.OrderID AND a.OrderSerial = b.OrderSerial WHERE b.OrderID ISNULL AND a.OrderID >@maxSaleOrderID ------ INSERT VendorDB.Vcsale.dbo.SaleOrderItem SELECT a.*FROM SaleOrderItem a LEFTJOIN VendorDB.Vcsale.dbo.SaleOrderItem b ON a.SaleOrderItemID = b.SaleOrderItemID WHERE b.SaleOrderItemID ISNULL AND a.SaleOrderItemID >@maxSaleOrderItemID --update sale order status for sale UPDATE a SET a.PayTime = b.PayTime, a.Status = b.Status FROM SaleOrder a INNERJOIN VendorDB.Vcsale.dbo.SaleOrder b ON a.OrderID=b.OrderID AND a.OrderSerial = b.OrderSerial AND CHECKSUM(a.PayTime,a.Status) != CHECKSUM(b.PayTime,b.Status) WHERE a.OrderID >@maxSaleOrderID ------ UPDATE a SET a.LeaveAmount = b.LeaveAmount, a.Status = b.Status FROM SaleOrderItem a INNERJOIN VendorDB.Vcsale.dbo.SaleOrderItem b ON a.SaleOrderItemID = b.SaleOrderItemID AND a.OrderID = b.OrderID AND CHECKSUM(a.LeaveAmount,a.Status) != CHECKSUM(b.LeaveAmount,b.Status) --update sale order item tradetime for vendor UPDATE a SET a.TradeTime = b.TradeTime FROM VendorDB.Vcsale.dbo.SaleOrderItem a INNERJOIN SaleOrderItem b ON a.SaleOrderItemID = b.SaleOrderItemID AND a.OrderID = b.OrderID WHERE a.OrderID>@maxSaleOrderID /**//*end update saleorder*/ GO /**//*drop romate vendor database server*/ EXEC sp_dropserver 'VendorDB' GO