SQL Server2012导出sql脚本并还原数据库

本文介绍了如何在不支持bak备份的数据库中,通过SQL脚本来导出和导入数据库对象。导出步骤包括从数据库生成脚本,选择表和存储过程,设置导出选项。导入时,首先需要清除数据库中的表和外键约束,然后可以执行SQL脚本完成导入。当文件过大无法直接打开时,可以使用sqlcmd命令行工具进行导入。
摘要由CSDN通过智能技术生成

有些数据库无法支持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

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值