sqlserver存储过程笔记
发布时间:2020-12-12 13:04:12 所属栏目:MsSql教程 来源:网络整理
导读:不带参数的存储过程 -- =============================================--不参数的存储过程-- =============================================if(exists (select * from sys.objects where name = 'sp_BaseSyncWithoutParam'))drop procedure sp_BaseSyncWit
不带参数的存储过程 -- ============================================= --不参数的存储过程 -- ============================================= if(exists (select * from sys.objects where name = 'sp_BaseSyncWithoutParam')) drop procedure sp_BaseSyncWithoutParam go create procedure sp_BaseSyncWithoutParam as select * from tbl_test; go exec sp_BaseSyncWithoutParam; 带参数的存储过程 SET ANSI_NULLS ON --允许比较运算符返回true or false GO SET QUOTED_IDENTIFIER ON --当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔 GO IF(EXISTS (SELECT * FROM sys.objects WHERE name = 'sp_BaseSync')) DROP PROCEDURE sp_BaseSync go CREATE PROCEDURE sp_BaseSync @id int,@name varchar(20) output AS insert into tbl_test(name) values(@name); GO DECLARE @id INT,@name varchar(20); SET @id = 7; set @name ='leo' EXEC sp_BaseSync @id,@name out; go select * from tbl_test 带通配符的存储过程 -- ============================================= --带参数的存储过程 -- ============================================= IF(EXISTS (SELECT * FROM sys.objects WHERE name = 'sp_BaseSync')) DROP PROCEDURE sp_BaseSync go CREATE PROCEDURE sp_BaseSync @id int,@name varchar(20) output AS select * from tbl_test where name like @name; GO DECLARE @id INT,@name varchar(20); SET @id = 7; set @name ='%' EXEC sp_BaseSync @id,@name ;
if(exists (select * from sys.objects where name= 'sp_BaseSyncWithCursor')) drop proc sp_BaseSyncWithCursor; go create proc sp_BaseSyncWithCursor as declare @id int,@name varchar(20); declare resultSet cursor for select * from tbl_test open resultSet fetch next from resultSet into @id,@name; print @@fetch_status while @@fetch_status=0 begin update tbl_test set name='txm' where id=@id; fetch next from resultSet into @id,@name; end close resultSet; deallocate resultSet go exec sp_BaseSyncWithCursor -- ============================================= if(exists (select * from sys.objects where name= 'pro_page')) drop proc pro_page; create proc pro_page @startIndex int,@endIndex int as select count(*) from tbl_test; select * from ( select row_number() over(order by id) as rowId,* from tbl_test ) temp where temp.rowId between @startIndex and @endIndex go --drop proc pro_page exec pro_page 1,6 DEMO功能:用于后台数据同步?USE [CRMData_Test] GO /****** Object: StoredProcedure [dbo].[sp_BaseSync] Script Date: 07/17/2015 17:03:50 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO if(exists (select * from sys.objects where name= 'sp_BaseSync')) drop proc sp_BaseSync go create proc [dbo].[sp_BaseSync] @param1 varchar(1000),--GROUP_ID @param2 varchar(1000),--NULL @param3 varchar(1000),--NULL @param4 varchar(1000),--NULL @param5 int --date diff as /**********************准备临时表代码块开始*************************************************/ begin try --get server location declare @linksrv varchar(100),@sys_last_upd datetime; select @linksrv=Value1 from SysParam where TypeID='Database' AND Code='JwData' AND GroupID=@param1 /**********************准备Item临时表*********/ if object_id('tempdb.dbo.##tempItem') is not null Begin drop table ##tempItem End /*获取最大更新时间@param5天前所有数据,插入到临时表*/ declare @company_id uniqueidentifier; select @company_id=UCML_OrganizeOID from dbo.UCML_Organize where Varchar1=@param1; select @sys_last_upd = convert(varchar(40),dateadd(day,@param5,max(SYS_LAST_UPD)),121) from dbo.Item where CompanyOID =@company_id ; if (@sys_last_upd is null) begin set @sys_last_upd='2011-06-09 23:08:16.623'; end print('Item目标表最新更新时间-7天:'); print(@sys_last_upd); /*准备临时表第1步,准备部分临时表字段,非必要字段在第4步添加*/ declare @sql_str1 Nvarchar(1000); set @sql_str1 = 'select convert(uniqueidentifier,null) as ItemOID,ItemID,convert(uniqueidentifier,null) as CompanyOID,CompanyID,null) as BrandOID,BrandID,Item,Desc1,Desc2,RetPrice,Year,SeasonID,SeasonName,YearSeasonID,YearSeasonName,CateID1,CateName1,CateID2,CateName2,CateID3,CateName3,CateID4,CateName4,CateID5,CateName5,CateID6,CateName6,CateID7,CateName7,CateID8,CateName8,CateID9,CateName9,CateID10,CateName10,Remark into ##tempItem from '+@linksrv+'.dbo.v_Intf_Item as v where v.SYS_LAST_UPD>'''+convert(varchar(40),@sys_last_upd,121)+''' and CompanyID= '''+@param1+''''; exec (@sql_str1) /*准备临时表第2步,并判断是否关联UCML_Organize表成功*/ update ##tempItem set CompanyOID=U.UCML_OrganizeOID from ##tempItem as T,dbo.UCML_Organize as U where T.CompanyID=U.Varchar1; --异常处理代码 if exists( select * from ##tempItem where CompanyOID is null) RAISERROR ( N'异常:关联UCML_Organize组织机构UCML表失败',16,-- 错误级别,任何用户都可以指定 0 到 18 之间的严重级别,[0,10]的闭区间内,不会跳到catch; 1 --如果是[11,19],则跳到catch;如果[20,无穷),则直接终止数据库连接; ) ; -- /*准备临时表第3步,并判断是否关联Brand表成功*/ update ##tempItem set BrandOID=B.BrandOID from ##tempItem as T,dbo.Brand as B where T.BrandID=B.Code; --异常处理代码 if exists( select * from ##tempItem where BrandOID is null) RAISERROR ( N'异常:关联Brand品牌表失败',-- 错误级别 1 ) ; /**********************准备Item临时表完成*********/ /**********************准备ItemSKU临时表开始******/ if object_id('tempdb.dbo.##tempItemSKU') is not null Begin drop table ##tempItemSKU End print('SKU延用Item目标表最新更新时间@param5天:'); print(@sys_last_upd); /*准备临时表第1步,未包含ItemSKUOID字段 */ declare @sql_str2 Nvarchar(1000); set @sql_str2 = 'select convert(uniqueidentifier,V.ItemID,--需删除的字段 V.Col_id,V.Siz_id,V.Log_id,V.Cost1,V.Cost2,V.Cost3,V.Cost4,V.Cost5,V.Cost6,V.Cost7,V.Cost8,V.Cost9,V.Cost10,V.TotCost into ##tempItemSKU from '+@linksrv+'.dbo.v_Intf_ItemSKU AS V where CompanyID='''+@param1+''' AND SYS_LAST_UPD>'''+convert(varchar(40),121)+''''; exec (@sql_str2) -- /**********************准备ItemSKU临时表完成******/ /**********************准备Location临时表开始*****/ if object_id('tempdb.dbo.##tempLocation') is not null Begin drop table ##tempLocation End print('Location延用Item目标表最新更新时间@param5天:'); print(@sys_last_upd); /*准备临时表第1步*/ declare @sql_str3 Nvarchar(1000); set @sql_str3 = 'select LocID,--需删除的字段 Name,Remark into ##tempLocation from '+@linksrv+'.dbo.v_Intf_Location where SYS_LAST_UPD>'''+convert(varchar(40),121)+''''; PRINT('从接口获取到的商店数量') exec (@sql_str3) /*准备临时表第2步,并判断是否关联UCML_Organize表成功*/ update ##tempLocation set CompanyOID=U.UCML_OrganizeOID from ##tempLocation as T,dbo.UCML_Organize as U where T.CompanyID=U.Varchar1; --异常处理代码 if exists( select * from ##tempLocation where CompanyOID is null) RAISERROR ( N'异常:关联UCML_Organize组织机构UCML表失败',10]的闭区间内,不会跳到catch; 2 --如果是[11,无穷),则直接终止数据库连接; ) ; -- /**********************准备Location临时表结束*****/ /**********************准备临时表代码块结束************************************************/ BEGIN transaction /**********************数据同步操作代码块************************************************/ /*更新已存在的款式*/ print('以下为更新款式操作数') update dbo.Item set CompanyOID=T.CompanyOID,BrandOID=T.BrandOID,Item=T.Item,Desc1=T.Desc1,Desc2=T.Desc2,RetPrice=T.RetPrice,Year=T.Year,SeasonID=T.SeasonID,YearSeasonID=T.YearSeasonID,CateID1=T.CateID1,CateID2=T.CateID2,CateID3=T.CateID3,CateID4=T.CateID4,CateID5=T.CateID5,CateID6=T.CateID6,CateID7=T.CateID7,CateID8=T.CateID8,CateID9=T.CateID9,CateID10=T.CateID10,Remark=T.Remark,SYS_LAST_UPD=getdate() from ##tempItem as T left join dbo.Item as I on T.ItemID=I.ItemID where I.ItemID is not null ; /*插入新增的款式*/ print('以下为新增款式操作数') insert into dbo.Item (ItemOID,CompanyOID,BrandOID,Remark,SYS_ORG,SYS_CreatedBy,SYS_LAST_UPD_BY,SYS_Created,SYS_LAST_UPD) select newid() as ItemOID,T.ItemID,T.CompanyOID,T.BrandOID,T.Item,T.Desc1,T.Desc2,T.RetPrice,T.Year,T.SeasonID,T.YearSeasonID,T.CateID1,T.CateID2,T.CateID3,T.CateID4,T.CateID5,T.CateID6,T.CateID7,T.CateID8,T.CateID9,T.CateID10,T.Remark,SYS_ORG=convert(uniqueidentifier,'00000000-0000-0000-0000-000000000000'),SYS_CreatedBy=convert(uniqueidentifier,SYS_LAST_UPD_BY=convert(uniqueidentifier,SYS_Created=getdate(),SYS_LAST_UPD=getdate() from ##tempItem as T left join dbo.Item as I on T.ItemID=I.ItemID where i.ItemID is null; print('新增款式完成'); update ##tempItemSKU set ItemOID=I.ItemOID from ##tempItemSKU as S,dbo.Item as I where S.ItemID=I.ItemID; /*更新已存在的款式成本*/ print('以下为更新款式成本数'); update dbo.ItemSKU set Col_id=T.Col_id,Siz_id=T.Siz_id,Log_id=T.Log_id,Cost1=T.Cost1,Cost2=T.Cost2,Cost3=T.Cost3,Cost4=T.Cost4,Cost5=T.Cost5,Cost6=T.Cost6,Cost7=T.Cost7,Cost8=T.Cost8,Cost9=T.Cost9,Cost10=T.Cost10,TotCost=T.TotCost from ##tempItemSKU as T left join dbo.ItemSKU as I on T.ItemOID=I.ItemOID where I.ItemOID is not null ; /*插入新增的款式成本*/ print('以下为插入款式成本数'); insert into dbo.ItemSKU select newid() as ItemSKUOID,T.ItemOID,T.Col_id,T.Siz_id,T.Log_id,T.Cost1,T.Cost2,T.Cost3,T.Cost4,T.Cost5,T.Cost6,T.Cost7,T.Cost8,T.Cost9,T.Cost10,T.TotCost from ##tempItemSKU as T left join dbo.ItemSKU as I on T.ItemOID=I.ItemOID where I.ItemOID is null; print('新增款式成本完成'); --select * from ##tempItemSKU /*更新已存在的公司信息*/ print('以下为更新商店数') update dbo.Location set LocID=T.LocID,Name=T.Name,Remark=T.Remark from ##tempLocation as T inner join dbo.Location as I on T.CompanyOID=I.CompanyOID AND T.LocID=I.LocID ; /*插入新增的公司信息*/ print('以下为新增商店数') insert into dbo.Location (LocationOID,LocID,Name,SYS_LAST_UPD) select newid() as LocationOID,T.LocID,T.Name,SYS_LAST_UPD=getdate() from ##tempLocation as T left join dbo.Location as I on T.CompanyOID=I.CompanyOID AND t.LocID=I.LocID where I.LocID is null; print('新增公司信息完成'); /*插入新增的CRM.Item.Season代码值*/ select CodeValueOID,CodeID,CodeName,CodeTableID,CodeClassifyOID into #t_p_s from CodeValue where CodeClassifyOID='00002d9c-0000-0000-0000-000000000000' select SeasonID,SeasonName into #t_p_s1 from ##tempItem group by SeasonID,SeasonName print('以下新增season信息'); insert into CodeValue (CodeValueOID,CodeClassifyOID) select newid() as CodeValueOID,T.SeasonID as CodeID,T.SeasonName as CodeValue,'CRM.Item.Season' as CodeTableID,'00002d9c-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_s1 as T left join #t_p_s as C on T.SeasonID=C.CodeID where C.CodeID is null ; PRINT('222222222211118888888888888888888888') print('以下更新season信息'); update CodeValue set CodeName=T.SeasonName from CodeValue C inner join #t_p_s1 as T on T.SeasonID=C.CodeID WHERE C.CodeClassifyOID='00002d9c-0000-0000-0000-000000000000' /*插入新增的CRM.Item.YearSeason代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_y from CodeValue where CodeClassifyOID='00002d9d-0000-0000-0000-000000000000' select YearSeasonID,YearSeasonName INTO #t_p_y1 from ##tempItem group by YearSeasonID,YearSeasonName print('以下新增YearSeason信息'); insert into CodeValue (CodeValueOID,T.YearSeasonID as CodeID,T.YearSeasonName as CodeValue,'CRM.Item.YearSeason' as CodeTableID,'00002d9d-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_y1 as T left join #t_p_y as C on T.YearSeasonID=C.CodeID where C.CodeID is null ; print('以下更新YearSeason信息'); update CodeValue set CodeName=T.YearSeasonName from CodeValue C inner join #t_p_y1 as T on T.YearSeasonID=C.CodeID WHERE C.CodeClassifyOID='00002d9d-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate1代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_1 from CodeValue where CodeClassifyOID='00002d9e-0000-0000-0000-000000000000' select CateID1,CateName1 INTO #t_p_11 from ##tempItem group by CateID1,CateName1 print('以下新增CRM.Item.Cate1信息'); insert into CodeValue (CodeValueOID,T.CateID1 as CodeID,T.CateName1 as CodeValue,'CRM.Item.Cate1' as CodeTableID,'00002d9e-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_11 as T left join #t_p_1 as C on T.CateID1=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate1信息'); update CodeValue set CodeName=T.CateName1 from CodeValue C inner join #t_p_11 as T on T.CateID1=C.CodeID WHERE C.CodeClassifyOID='00002d9e-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate2代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_2 from CodeValue where CodeClassifyOID='00002d9f-0000-0000-0000-000000000000' select CateID2,CateName2 INTO #t_p_21 from ##tempItem group by CateID2,CateName2 print('以下新增CRM.Item.Cate2信息'); insert into CodeValue (CodeValueOID,T.CateID2 as CodeID,T.CateName2 as CodeValue,'CRM.Item.Cate2' as CodeTableID,'00002d9f-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_21 as T left join #t_p_2 as C on T.CateID2=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate2信息'); update CodeValue set CodeName=T.CateName2 from CodeValue C inner join #t_p_21 as T on T.CateID2=C.CodeID WHERE C.CodeClassifyOID='00002d9f-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate3代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_3 from CodeValue where CodeClassifyOID='00002da0-0000-0000-0000-000000000000' select CateID3,CateName3 INTO #t_p_31 from ##tempItem group by CateID3,CateName3 print('以下新增CRM.Item.Cate3信息'); insert into CodeValue (CodeValueOID,T.CateID3 as CodeID,T.CateName3 as CodeValue,'CRM.Item.Cate3' as CodeTableID,'00002da0-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_31 as T left join #t_p_3 as C on T.CateID3=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate3信息'); update CodeValue set CodeName=T.CateName3 from CodeValue C inner join #t_p_31 as T on T.CateID3=C.CodeID WHERE C.CodeClassifyOID='00002da0-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate4代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_4 from CodeValue where CodeClassifyOID='00002da1-0000-0000-0000-000000000000' select CateID4,CateName4 INTO #t_p_41 from ##tempItem group by CateID4,CateName4 print('以下新增CRM.Item.Cate4信息'); insert into CodeValue (CodeValueOID,T.CateID4 as CodeID,T.CateName4 as CodeValue,'CRM.Item.Cate4' as CodeTableID,'00002da1-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_41 as T left join #t_p_4 as C on T.CateID4=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate4信息'); update CodeValue set CodeName=T.CateName4 from CodeValue C inner join #t_p_41 as T on T.CateID4=C.CodeID WHERE C.CodeClassifyOID='00002da1-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate5代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_5 from CodeValue where CodeClassifyOID='00002da2-0000-0000-0000-000000000000' select CateID5,CateName5 INTO #t_p_51 from ##tempItem group by CateID5,CateName5 print('以下新增CRM.Item.Cate5信息'); insert into CodeValue (CodeValueOID,T.CateID5 as CodeID,T.CateName5 as CodeValue,'CRM.Item.Cate5' as CodeTableID,'00002da2-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_51 as T left join #t_p_5 as C on T.CateID5=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate5信息'); update CodeValue set CodeName=T.CateName5 from CodeValue C inner join #t_p_51 as T on T.CateID5=C.CodeID WHERE C.CodeClassifyOID='00002da2-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate6代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_6 from CodeValue where CodeClassifyOID='00002da3-0000-0000-0000-000000000000' select CateID6,CateName6 INTO #t_p_61 from ##tempItem group by CateID6,CateName6 print('以下新增CRM.Item.Cate6信息'); insert into CodeValue (CodeValueOID,T.CateID6 as CodeID,T.CateName6 as CodeValue,'CRM.Item.Cate6' as CodeTableID,'00002da3-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_61 as T left join #t_p_6 as C on T.CateID6=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate6信息'); update CodeValue set CodeName=T.CateName6 from CodeValue C inner join #t_p_61 as T on T.CateID6=C.CodeID WHERE C.CodeClassifyOID='00002da3-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate7代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_7 from CodeValue where CodeClassifyOID='00002da4-0000-0000-0000-000000000000' select CateID7,CateName7 INTO #t_p_71 from ##tempItem group by CateID7,CateName7 print('以下新增CRM.Item.Cate7信息'); insert into CodeValue (CodeValueOID,T.CateID7 as CodeID,T.CateName7 as CodeValue,'CRM.Item.Cate7' as CodeTableID,'00002da4-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_71 as T left join #t_p_7 as C on T.CateID7=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate7信息'); update CodeValue set CodeName=T.CateName7 from CodeValue C inner join #t_p_71 as T on T.CateID7=C.CodeID WHERE C.CodeClassifyOID='00002da4-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate8代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_8 from CodeValue where CodeClassifyOID='00002da5-0000-0000-0000-000000000000' select CateID8,CateName8 INTO #t_p_81 from ##tempItem group by CateID8,CateName8 print('以下新增CRM.Item.Cate8信息'); insert into CodeValue (CodeValueOID,T.CateID8 as CodeID,T.CateName8 as CodeValue,'CRM.Item.Cate8' as CodeTableID,'00002da5-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_81 as T left join #t_p_8 as C on T.CateID8=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate8信息'); update CodeValue set CodeName=T.CateName8 from CodeValue C inner join #t_p_81 as T on T.CateID8=C.CodeID WHERE C.CodeClassifyOID='00002da5-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate9代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_9 from CodeValue where CodeClassifyOID='00002da6-0000-0000-0000-000000000000' select CateID9,CateName9 INTO #t_p_91 from ##tempItem group by CateID9,CateName9 print('以下新增CRM.Item.Cate9信息'); insert into CodeValue (CodeValueOID,T.CateID9 as CodeID,T.CateName9 as CodeValue,'CRM.Item.Cate9' as CodeTableID,'00002da6-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_91 as T left join #t_p_9 as C on T.CateID9=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate9信息'); update CodeValue set CodeName=T.CateName9 from CodeValue C inner join #t_p_91 as T on T.CateID9=C.CodeID WHERE C.CodeClassifyOID='00002da6-0000-0000-0000-000000000000' /*插入新增的CRM.Item.Cate10代码值*/ select CodeValueOID,CodeClassifyOID into #t_p_10 from CodeValue where CodeClassifyOID='00002da7-0000-0000-0000-000000000000' select CateID10,CateName10 INTO #t_p_101 from ##tempItem group by CateID10,CateName10 print('以下新增CRM.Item.Cate10信息'); insert into CodeValue (CodeValueOID,T.CateID10 as CodeID,T.CateName10 as CodeValue,'CRM.Item.Cate10' as CodeTableID,'00002da7-0000-0000-0000-000000000000') as CodeClassifyOID from #t_p_101 as T left join #t_p_10 as C on T.CateID10=C.CodeID where C.CodeID is null ; print('以下更新CRM.Item.Cate10信息'); update CodeValue set CodeName=T.CateName10 from CodeValue C inner join #t_p_101 as T on T.CateID10=C.CodeID WHERE C.CodeClassifyOID='00002da7-0000-0000-0000-000000000000' /*插入新增的CRM.Loc.Cate1代码值*/ select CodeValueOID,CodeClassifyOID into #t_c_1 from CodeValue where CodeClassifyOID='00002dad-0000-0000-0000-000000000000' select CateID1,CateName1 INTO #t_c_11 from ##tempLocation group by CateID1,CateName1 print('以下新增CRM.Loc.Cate1信息'); insert into CodeValue (CodeValueOID,'CRM.Loc.Cate1' as CodeTableID,'00002dad-0000-0000-0000-000000000000') as CodeClassifyOID from #t_c_11 as T left join #t_c_1 as C on T.CateID1=C.CodeID where C.CodeID is null ; print('以下更新CRM.Loc.Cate1信息'); update CodeValue set CodeName=T.CateName1 from CodeValue C inner join #t_c_11 as T on T.CateID1=C.CodeID WHERE C.CodeClassifyOID='00002dad-0000-0000-0000-000000000000' /*插入新增的CRM.Loc.Cate2代码值*/ select CodeValueOID,CodeClassifyOID into #t_c_2 from CodeValue where CodeClassifyOID='00002dae-0000-0000-0000-000000000000' select CateID2,CateName2 INTO #t_c_21 from ##tempLocation group by CateID2,CateName2 print('以下新增CRM.Loc.Cate2信息'); insert into CodeValue (CodeValueOID,'CRM.Loc.Cate2' as CodeTableID,'00002dae-0000-0000-0000-000000000000') as CodeClassifyOID from #t_c_21 as T left join #t_c_2 as C on T.CateID2=C.CodeID where C.CodeID is null ; print('以下更新CRM.Loc.Cate2信息'); update CodeValue set CodeName=T.CateName2 from CodeValue C inner join #t_c_21 as T on T.CateID2=C.CodeID WHERE C.CodeClassifyOID='00002dae-0000-0000-0000-000000000000' /*插入新增的CRM.Loc.Cate3代码值*/ select CodeValueOID,CodeClassifyOID into #t_c_3 from CodeValue where CodeClassifyOID='00002daf-0000-0000-0000-000000000000' select CateID3,CateName3 INTO #t_c_31 from ##tempLocation group by CateID3,CateName3 print('以下新增CRM.Loc.Cate3信息'); insert into CodeValue (CodeValueOID,'CRM.Loc.Cate3' as CodeTableID,'00002daf-0000-0000-0000-000000000000') as CodeClassifyOID from #t_c_31 as T left join #t_c_3 as C on T.CateID3=C.CodeID where C.CodeID is null ; print('以下更新CRM.Loc.Cate3信息'); update CodeValue set CodeName=T.CateName3 from CodeValue C inner join #t_c_31 as T on T.CateID3=C.CodeID WHERE C.CodeClassifyOID='00002daf-0000-0000-0000-000000000000' /*插入新增的CRM.Loc.Cate4代码值*/ select CodeValueOID,CodeClassifyOID into #t_c_4 from CodeValue where CodeClassifyOID='00002db0-0000-0000-0000-000000000000' select CateID4,CateName4 INTO #t_c_41 from ##tempLocation group by CateID4,CateName4 print('以下新增CRM.Loc.Cate4信息'); insert into CodeValue (CodeValueOID,'CRM.Loc.Cate4' as CodeTableID,'00002db0-0000-0000-0000-000000000000') as CodeClassifyOID from #t_c_41 as T left join #t_c_4 as C on T.CateID4=C.CodeID where C.CodeID is null ; print('以下更新CRM.Loc.Cate4信息'); update CodeValue set CodeName=T.CateName4 from CodeValue C inner join #t_c_41 as T on T.CateID4=C.CodeID WHERE C.CodeClassifyOID='00002db0-0000-0000-0000-000000000000' /*插入新增的CRM.Loc.Cate5代码值*/ select CodeValueOID,CodeClassifyOID into #t_c_5 from CodeValue where CodeClassifyOID='00002db1-0000-0000-0000-000000000000' select CateID5,CateName5 INTO #t_c_51 from ##tempLocation group by CateID5,CateName5 print('以下新增CRM.Loc.Cate5信息'); insert into CodeValue (CodeValueOID,'CRM.Loc.Cate5' as CodeTableID,'00002db1-0000-0000-0000-000000000000') as CodeClassifyOID from #t_c_51 as T left join #t_c_5 as C on T.CateID5=C.CodeID where C.CodeID is null ; print('以下更新CRM.Loc.Cate5信息'); update CodeValue set CodeName=T.CateName5 from CodeValue C inner join #t_c_51 as T on T.CateID5=C.CodeID WHERE C.CodeClassifyOID='00002db1-0000-0000-0000-000000000000' /*回写日志*/ print('回写日志完成'); insert into CRMData_Test.dbo.SYS_UCML_LOG(SYS_UCML_LOGOID,SYS_DATE,ActionName,LogType,Url,UserHostAddress,UserHostName,BusinessName,UCML_User_FK,UCML_Post_FK,UCML_Division_FK) values(newid(),GETDATE(),'數據同步','',host_name(),'基礎數據同步','00000000-0000-0000-0000-000000000000','00000000-0000-0000-0000-000000000000'); /*提交事务*/ commit transaction end try BEGIN CATCH ROLLBACK transaction DECLARE @ErrorMessage NVARCHAR(4000); DECLARE @ErrorSeverity INT; DECLARE @ErrorState INT; SELECT @ErrorMessage = ERROR_MESSAGE(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE(); RAISERROR (@ErrorMessage,-- Message text. @ErrorSeverity,-- Severity. @ErrorState -- State. ); END CATCH; go exec sp_BaseSync 'A',null,-7 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql – 如何将今天的日期返回到Oracle中的一个变量
- 如何使用MS SQL Server Managment Studio删除SQL数据库表中
- C#列出局域网中可用SQL Server服务器(续)
- sql-server – 为什么Denali序列应该比标识列表现更好?
- sql – 存储过程的字符串参数的最大长度是多少?
- SQL Server 指定字段编号sql语句
- sql-server – SQL Server 2008与SQL Server 2005的兼容性
- sql-server – SQL Server安装程序检查列表
- sql – 删除多对多关系中的相关行
- Windows下mysql修改root密码的4种方法