sqlserver存储过程笔记

不带参数的存储过程

-- =============================================
--不参数的存储过程
-- =============================================
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,
	    convert(uniqueidentifier,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品牌表失败',
				16, -- 错误级别 
				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,null) as ItemOID, 
		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),@sys_last_upd,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,
		convert(uniqueidentifier,null) as CompanyOID, 
		CompanyID, --需删除的字段
		Name, CateID1,CateName1, CateID2,CateName2, CateID3,CateName3, CateID4,CateName4, CateID5,CateName5,
		Remark
into ##tempLocation
from '+@linksrv+'.dbo.v_Intf_Location 
where  SYS_LAST_UPD>'''+convert(varchar(40),@sys_last_upd,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表失败',
				16, -- 错误级别, 任何用户都可以指定 0 到 18 之间的严重级别,[0,10]的闭区间内,不会跳到catch; 
				2	--如果是[11,19],则跳到catch;如果[20,无穷),则直接终止数据库连接;
           ) ;    
--

/**********************准备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,ItemID,CompanyOID,BrandOID,Item,Desc1,Desc2,RetPrice,Year,SeasonID,YearSeasonID,
			CateID1,CateID2,CateID3,CateID4,CateID5,CateID6,CateID7,CateID8,CateID9,CateID10,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,'00000000-0000-0000-0000-000000000000'),
		SYS_LAST_UPD_BY=convert(uniqueidentifier,'00000000-0000-0000-0000-000000000000'),
		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, 
	    CateID1=T.CateID1, CateID2=T.CateID2, CateID3=T.CateID3, CateID4=T.CateID4, CateID5=T.CateID5,
		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,CompanyOID,Name,CateID1,CateID2,CateID3,CateID4,CateID5,
							Remark,SYS_ORG,SYS_CreatedBy,SYS_LAST_UPD_BY,SYS_Created,SYS_LAST_UPD)
select  newid() as LocationOID, T.LocID, T.CompanyOID, T.Name, 
		T.CateID1, T.CateID2, T.CateID3, T.CateID4, T.CateID5, T.Remark,
		SYS_ORG=convert(uniqueidentifier,'00000000-0000-0000-0000-000000000000'),
		SYS_CreatedBy=convert(uniqueidentifier,'00000000-0000-0000-0000-000000000000'),
		SYS_LAST_UPD_BY=convert(uniqueidentifier,'00000000-0000-0000-0000-000000000000'),
		SYS_Created=getdate(),
		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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.SeasonID as CodeID, T.SeasonName as CodeValue , 'CRM.Item.Season' as CodeTableID,  
        convert(uniqueidentifier,'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('111111111111118888888888888888888888')
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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.YearSeasonID as CodeID, T.YearSeasonName as CodeValue , 'CRM.Item.YearSeason' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID1 as CodeID, T.CateName1 as CodeValue , 'CRM.Item.Cate1' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID2 as CodeID, T.CateName2 as CodeValue , 'CRM.Item.Cate2' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID3 as CodeID, T.CateName3 as CodeValue , 'CRM.Item.Cate3' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID4 as CodeID, T.CateName4 as CodeValue , 'CRM.Item.Cate4' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID5 as CodeID, T.CateName5 as CodeValue , 'CRM.Item.Cate5' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID6 as CodeID, T.CateName6 as CodeValue , 'CRM.Item.Cate6' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID7 as CodeID, T.CateName7 as CodeValue , 'CRM.Item.Cate7' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID8 as CodeID, T.CateName8 as CodeValue , 'CRM.Item.Cate8' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID9 as CodeID, T.CateName9 as CodeValue , 'CRM.Item.Cate9' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID10 as CodeID, T.CateName10 as CodeValue , 'CRM.Item.Cate10' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID1 as CodeID, T.CateName1 as CodeValue , 'CRM.Loc.Cate1' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID2 as CodeID, T.CateName2 as CodeValue , 'CRM.Loc.Cate2' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID3 as CodeID, T.CateName3 as CodeValue , 'CRM.Loc.Cate3' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID4 as CodeID, T.CateName4 as CodeValue , 'CRM.Loc.Cate4' as CodeTableID,  
        convert(uniqueidentifier,'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, CodeID, CodeName, CodeTableID, 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, CodeID, CodeName, CodeTableID, CodeClassifyOID)   
select  newid() as CodeValueOID, T.CateID5 as CodeID, T.CateName5 as CodeValue , 'CRM.Loc.Cate5' as CodeTableID,  
        convert(uniqueidentifier,'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(), '數據同步', 0, '','', host_name(), '基礎數據同步', 
						'00000000-0000-0000-0000-000000000000', '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,null,null,-7


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL Server 备课笔记 SQL Server 是一种关系型数据库管理系统,用于存储和操作大量数据。备课笔记可以帮助教师们在备课过程中更好地组织和管理教学资源。 1. 数据库创建:使用 SQL Server Management Studio (SSMS) 创建一个新的数据库,可以选择数据库的名称和存储位置。创建数据库后,可以为数据库添加表格、视图、存储过程等对象。 2. 数据表设计:在数据库中创建数据表格时,需要定义表格的名称和列名,并为每列指定数据类型。可以使用 INT、VARCHAR、DATE 等各种数据类型来定义不同类型的数据。还可以定义主键、外键和索引,以提高查询性能和数据完整性。 3. 数据查询:使用 SQL 语句来查询数据库中的数据。常用的查询语句包括 SELECT、INSERT、UPDATE 和 DELETE。可以使用 WHERE 子句来过滤结果,ORDER BY 子句来排序结果,并使用 JOIN 子句来连接多个数据表格。 4. 数据修改:可以使用 INSERT 语句向数据表格中插入新的数据行,使用 UPDATE 语句修改现有的数据行,使用 DELETE 语句删除不需要的数据行。使用事务可以确保数据的一致性和完整性。 5. 数据备份和恢复:可以使用 SQL Server Management Studio 或 Transact-SQL 命令来备份和恢复数据库。备份操作可以将数据库的完整副本保存到硬盘或其他存储介质中,以便在发生故障时进行恢复。 总结:SQL Server 是一种强大的数据库管理系统,备课笔记可以帮助教师们更好地组织和管理教学资源。通过数据库的创建、数据表设计、数据查询、数据修改以及数据备份和恢复等功能,可以有效地存储、操作和维护大量的教学数据,提高备课效率和教学质量。 ### 回答2: SQL Server是一种关系型数据库管理系统,在备课过程中使用它可以方便地存储学生信息、课程内容和成绩等数据,并且进行各种查询、统计和分析。 首先,在使用SQL Server进行备课时,可以创建一个名为“学生表”的表格,其中包含学生的学号、姓名、性别、年龄等字段。然后,通过SQL语句向该表格中插入学生信息。 在备课笔记中,可以利用SQL Server提供的创建表、插入数据和修改数据等功能来记录课程内容和教学进度。可以创建一个名为“课程表”的表格来存储课程信息,例如课程名称、授课教师、上课地点等字段。通过SQL语句向该表格中插入相应的课程信息。 此外,在备课过程中,还可以使用SQL Server的查询功能来进行统计和分析。例如,可以使用SQL语句查询某门课程的选修学生人数、平均成绩和考试成绩分布等信息。这些查询的结果可以用于制定备课计划和评估学生的学习情况。 此外,为了方便备课,可以在SQL Server中创建一个名为“备课笔记表”的表格,其中包含备课日期、备课内容、教学方法等字段。通过SQL语句向该表格中插入备课笔记,记录备课过程中的思考、想法和教学心得。 总之,SQL Server作为一种强大的数据库管理系统,可以在备课过程中提供存储、查询和分析数据的功能,从而帮助教师更好地备课和教学。在备课笔记中使用SQL Server可以方便地记录和管理备课过程中的相关信息。 ### 回答3: SQL Server备课笔记主要包括以下内容: 一、SQL Server的基础知识 1. SQL Server的概述:介绍SQL Server的定义、特点以及常见的版本。 2. SQL Server的体系结构:阐述SQL Server的组件和各个组件的作用。 二、SQL Server的安装与配置 1. SQL Server的安装:介绍SQL Server的安装步骤和注意事项。 2. SQL Server的配置:包括数据库引擎的配置、网络配置、安全性配置等。 三、SQL Server的数据库管理 1. 数据库的创建与删除:介绍如何创建和删除数据库。 2. 数据库的备份与还原:介绍如何备份和还原数据库以及常见的备份策略。 3. 数据库的管理:包括数据库的扩展、缩小、文件组的管理等。 四、SQL Server的数据操作 1. 创建和管理表:介绍创建表的语法和常见的表操作。 2. 数据的插入、更新和删除:介绍如何向表中插入、更新和删除数据。 3. 数据查询:介绍SQL Server的查询语句以及常见的查询操作。 五、SQL Server的高级应用 1. 数据库的事务管理:介绍事务的概念、特性以及SQL Server中的事务相关操作。 2. 数据库的性能优化:包括索引的创建和管理、查询性能优化等。 六、SQL Server的安全性管理 1. 用户和权限管理:介绍如何创建和管理用户,并设置不同的权限。 2. 数据库的加密和解密:介绍如何对数据库进行加密和解密以保证数据的安全性。 七、SQL Server的监控与故障处理 1. 监控SQL Server的性能:介绍如何使用SQL Server的性能监视器来监控服务器的性能。 2. 故障处理:介绍如何处理常见的SQL Server故障,如数据库无法打开、死锁等。 通过学习SQL Server备课笔记,能够帮助我们全面了解SQL Server的基础知识、安装与配置、数据库管理、数据操作、高级应用、安全性管理以及监控与故障处理等方面的内容,提升我们的SQL Server应用能力和问题解决能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值