先將數據庫選擇到要導入的目標數據庫

--第一步:清空數據庫各表數據,執行如下SQL


DECLARE tables_cursor1 CURSOR    
FOR
SELECT name FROM sysobjects WHERE type = 'U'
and 
name not in
 ---以下表不需要導入
 ('aspnet_Applications','aspnet_Membership','aspnet_Roles','aspnet_Users','aspnet_SchemaVersions','aspnet_UsersInRoles','aspnet_Membership','aspnet_Roles','User')--??用?名表 

OPEN tables_cursor1 --//打開游表連接  
DECLARE @tablename1 sysname   --// 定義變量  
FETCH NEXT FROM tables_cursor1 INTO @tablename1   --//如果集中一行一行或取表名 
WHILE (@@FETCH_STATUS <> -1) --//判斷游標狀態 
BEGIN     
EXEC (' TRUNCATE TABLE ' + @tablename1)   --//清空表中的數据    
FETCH NEXT FROM tables_cursor1 INTO @tablename1 --//下一行數據据  
END 
close tables_cursor1
  DEALLOCATE tables_cursor1 --//釋放游標  

 

 

 


--第二步:導入數據SQL

DECLARE tables_cursor1 CURSOR    
FOR
SELECT name FROM sysobjects WHERE type = 'U'
and 
name not in

 ('aspnet_Applications','aspnet_Membership','aspnet_Roles','aspnet_Users','aspnet_SchemaVersions','aspnet_UsersInRoles','aspnet_Membership','aspnet_Roles','User')--??用?名表 

OPEN tables_cursor1 --//打開游表連接  
DECLARE @tablename1 sysname   --// 定義變量  
FETCH NEXT FROM tables_cursor1 INTO @tablename1   --//如果集中一行一行或取表名 
WHILE (@@FETCH_STATUS <> -1) --//判斷游標狀態 
BEGIN   
begin try  

--YY為原數據源的數據庫名稱
EXEC (' insert  into ' + @tablename1+'  select * from YY.dbo.'+@tablename1)   --//清空表中的數据    
print @tablename1
print '----------------'
end try
begin catch
print @tablename1
end catch                                                                                                                                                                 FETCH NEXT FROM tables_cursor1 INTO @tablename1 --//下一行數據据  
END 
close tables_cursor1
  DEALLOCATE tables_cursor1 --//釋放游標