Sqlserver命令SQLCMD备份恢复数据库

本文介绍了一种使用SQL Server的sqlcmd工具进行数据库备份和恢复的方法。包括如何创建备份脚本bak.bat及恢复脚本restore.bat,通过这些脚本可以实现数据库的初始化备份和还原。此外还介绍了如何通过SQL命令实现数据库的批量备份,并提供了sqlcmd工具的详细使用说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,备份,创建脚本bak.bat,内容
sqlcmd -i "f:\dbbak\bak.sql"

脚本调用恢复的语句文本
:connect .
backup database db1 to disk = 'f:\dbbak\db1.bak' with init
go

说明:init代表覆盖之前的文件,如果noinit代表append to the most recent backup
2,还原,创建还原脚本restore.bat,内容
sqlcmd -i "f:\dbbak\restore.sql"
pause

如果还原到指定库,追加 -d dbname即可

如果还原后乱码,可以指定-f 指定字符集,比如-f 65001 使用utf-8字符集

还原sql为
:connect .
USE master
GO
ALTER DATABASE [db1] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

--查看是否还有用户连接
--SELECT * FROM sys.[sysprocesses] WHERE DB_NAME([dbid])='db1'
--GO
ALTER DATABASE [db1] SET MULTI_USER
GO
RESTORE DATABASE [db1] FROM  DISK = N'f:\dbbak\db1.bak' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 10
go

3,批量生成备份库sql
SELECT
'backup database '+ name+' to disk = ''f:\dbbak\'+name+'.bak'' with init'
FROM Master..SysDatabases
where dbid>=7; -- 注意条件

4,其他

C:\Users\Administrator>sqlcmd -?
Microsoft (R) SQL Server 命令行工具
版本 11.0.2100.60 NT x64
版权所有 (c) 2012 Microsoft。保留所有权利。

用法: Sqlcmd            [-U 登录 ID]          [-P 密码]
  [-S 服务器]            [-H 主机名]          [-E 可信连接]
  [-N 加密连接][-C 信任服务器证书]
  [-d 使用数据库名称] [-l 登录超时值]     [-t 查询超时值]
  [-h 标题]           [-s 列分隔符]      [-w 屏幕宽度]
  [-a 数据包大小]        [-e 回显输入]        [-I 允许带引号的标识符]
  [-c 命令结束]            [-L[c] 列出服务器[清除输出]]
  [-q "命令行查询"]   [-Q "命令行查询" 并退出]
  [-m 错误级别]        [-V 严重级别]     [-W 删除尾随空格]
  [-u unicode 输出]    [-r[0|1] 发送到 stderr 的消息]
  [-i 输入文件]         [-o 输出文件]        [-z 新密码]
  [-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
  [-k[1|2] 删除[替换]控制字符]
  [-y 可变长度类型显示宽度]
  [-Y 固定长度类型显示宽度]
  [-p[1] 打印统计信息[冒号格式]]
  [-R 使用客户端区域设置]
  [-K 应用程序意向]
  [-M 多子网故障转移]
  [-b 出错时中止批处理]
  [-v 变量 = "值"...]  [-A 专用管理连接]
  [-X[1] 禁用命令、启动脚本、环境变量[并退出]]
  [-x 禁用变量替换]
  [-? 显示语法摘要]

登录执行dml语句

C:\Users\Administrator>sqlcmd
1> use t
2> go
已将数据库上下文更改为 't'。
1> create table t(id int);
2> go
1> insert into t values(1);
2> go

(1 行受影响)
1> select * from t;
2> go
id
-----------
          1

(1 行受影响)
如果是远程需要指定用户名,密码地址端口,-U sa  -P  123456 -S 192.168.1.100,1433



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值