国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

(3)再把B庫中數據復制回A庫中(含有父子關系表)

2019-11-08 20:28:05
字體:
來源:轉載
供稿:網友
/****** Object: StoredPRocedure [dbo].[usp_CopyDataBase_Data] Script Date: 02/12/2017 21:45:12 ******/IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_CopyDataBase_Data]') AND type in (N'P', N'PC'))DROP PROCEDURE [dbo].[usp_CopyDataBase_Data]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[usp_CopyDataBase_Data]') AND type in (N'P', N'PC'))BEGINEXEC dbo.sp_executesql @statement = N'-- =============================================-- Author: -- Create date: -- Description: -- EXEC [usp_CopyDataBase_Data] ''IPVA_Apple_2'',''IPVA_Apple''-- =============================================CREATE PROCEDURE [dbo].[usp_CopyDataBase_Data] @DataBaseA nvarchar(50),@DataBaseB nvarchar(50)ASBEGINSET NOCOUNT ON;declare @a int,@b int,@c intdeclare @count_a int,@count_b int,@count_c intdeclare @Name_A nvarchar(50),@Name_AA nvarchar(50),@Name_B nvarchar(50),@Name_C nvarchar(50)declare @SQL nvarchar(max)DECLARE @pkStr NVARCHAR(max)DECLARE @colStr NVARCHAR(max)DECLARE @insertStr NVARCHAR(max)create table #TableNameA(ID INT IDENTITY(1,1),table_name nvarchar(50),fk_name nvarchar(50),reference_table_name nvarchar(50),fk_list_number int)create table #TableNameB(ID INT IDENTITY(1,1),Name nvarchar(50))create table #TableNameC(ID INT IDENTITY(1,1),Name nvarchar(50))insert into #TableNameASELECT table_name,fk_name,reference_table_name,fk_list_numberFROM (SELECT object_name(f.object_id) AS fk_name,object_name(f.parent_object_id) AS table_name,object_name(f.referenced_object_id) AS reference_table_name,k.parent_column_id AS fk_list_numberFROM sys.foreign_keys fINNER JOIN sys.foreign_key_columns kon f.object_id = k.constraint_object_id and f.referenced_object_id = k.referenced_object_id) t order by fk_list_number descselect @count_a=COUNT(*) from #TableNameAset @a=1while(@a<=@count_a)beginselect @Name_A=reference_table_name from #TableNameA where ID=@aif not exists(select * from #TableNameB where Name =@Name_A)begininsert into #TableNameB select @Name_Aendset @a=@a+1endset @a=1while(@a<=@count_a)beginselect @Name_AA=table_name from #TableNameA where ID=@aif not exists(select * from #TableNameB where Name =@Name_AA)begininsert into #TableNameB select @Name_AAendset @a=@a+1endinsert into #TableNameC select name from sysobjects where xtype=''U'' select @count_b=COUNT(*) from #TableNameCset @b=1while(@b<=@count_b)beginselect @Name_B=Name from #TableNameC where ID=@bif not exists(select * from #TableNameB where Name = @Name_B)begininsert into #TableNameB select @Name_Bendset @b=@b+1endselect @count_c=COUNT(*) from #TableNameBset @c=1while(@c<=@count_c)beginselect @Name_C=Name from #TableNameB where ID=@cif(@Name_C =''Summary_Thirty'' or @Name_C =''Summary_Sixty'' or @Name_C =''Summary_Day'' or @Name_C =''Summary_Week'' or @Name_C =''Summary_Month'' or @Name_C =''Summary_Year'' or @Name_C =''Traffic_CountData'')beginprint 1endelsebeginif exists(select * from syscolumns where id=object_id(N''[''+@Name_C+'']'') and COLUMNPROPERTY(id,name,''IsIdentity'')=1)begin--主鍵EXEC [usp_SUBDB_GetPrimaryKeyofTableScript] @Name_C,1,@pkStr output--列對等EXEC [usp_SUBDB_GetPrimaryKeyofTableScript] @Name_C,0,@colStr output--插入EXEC [usp_SUBDB_GetPrimaryKeyofTableScript] @Name_C,2,@insertStr outputset @SQl='' SET IDENTITY_INSERT [''+@DataBaseB+''].[dbo].[''+@Name_C+''] ON merge [''+@DataBaseB+''].[dbo].[''+@Name_C+''] a --要更新的目標表using ( select * from [''+@DataBaseA+''].[dbo].[''+@Name_C+''])b --源表on ''+@pkStr+'' --更新條件(即主鍵)when matched --如果主鍵匹配,更新then update set ''+@colStr+'' when not matchedthen ''+@insertStr+''; SET IDENTITY_INSERT [''+@DataBaseB+''].[dbo].[''+@Name_C+''] off ''--print @SQlexec (@SQl)endelsebeginset @SQL='' insert into [''+@DataBaseB+''].[dbo].[''+@Name_C+''] select * from [''+@DataBaseA+''].[dbo].[''+@Name_C+''] ''--print @SQlexec (@SQl)endendset @c=@c+1enddrop table #TableNameAdrop table #TableNameBdrop table #TableNameCEND' ENDGO
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泸西县| 新巴尔虎左旗| 蚌埠市| 老河口市| 博兴县| 康保县| 边坝县| 甘泉县| 宜章县| 武鸣县| 化隆| 青铜峡市| 东宁县| 濮阳市| 绥江县| 项城市| 常熟市| 鄂伦春自治旗| 江华| 保康县| 灵武市| 文登市| 石林| 婺源县| 德清县| 托里县| 于都县| 鹤山市| 邢台市| 金山区| 九江县| 延边| 芦山县| 华宁县| 永川市| 山东省| 万宁市| 西和县| 繁峙县| 兰考县| 自治县|