有些数据库无法支持bak备份和还原,只能通过sql脚本的方式导出和导入。
导出
1、选中数据库>任务>生成脚本
2、选择具体的数据库对象>选择所有表和存储过程>下一步
3、点击高级
4、选择架构和数据
4、下一步就等待执行完毕即可,导出之后会得到一个这样的文件。
导入
1、如果之前选择的是导出了所有的存储过程和数据表结构及数据,则可以清空下还原数据库的信息(通常我是备份到测试数据库)。
--/第1步**********删除所有表的外键约束*************************/
DECLARE c1 cursor for
select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '
from sysobjects
where xtype = 'F'
open c1
declare @c1 varchar(8000)
fetch next from c1 into @c1
while(@@fetch_status=0)
begin
exec(@c1)
fetch next from c1 into @c1
end
close c1
deallocate c1
--/第2步**********删除所有表*************************/
declare @sql varchar(8000)
while (select count(*) from sysobjects where type='U')>0
begin
SELECT @sql='drop table ' + name
FROM sysobjects
WHERE (type = 'U')
ORDER BY 'drop table ' + name
exec(@sql)
end
2、导入基本上就只打开导出的sql文件执行即可,但是有时候文件太大导致无法打开文件,这时候可以使用命令行执行。
sqlcmd -S MSCNB0000106\MSSQLSERVER01 -d DemoDB -U user1 -P pass1 -i C:\Users\tom\Desktop\20210305.sql