在SQL server中用sql语句实现数据库的备份以及还原

本文给大家提供并讲解了在SQL server中用SQL语句实现数据库的备份已经还原

备份数据库 

假设你已经有一个数据库Student

创建备份设备,其名称为bk_Student,保存文件为D:\ Student.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student中。

EXEC sp_addumpdevice 'disk', 'bk_Student', 'D:\Student.bak'

BACKUP DATABASE Student 
TO DISK = 'D:\Student.bak' 
with format;

 在Student数据库中,创建一张表temp并对Student数据库进行第一次差异备份,备份到备份设备bk_Student中        //表的内容不重要

下面这段代码的意思是进行一次差异备份,并且备份到bk_Student

如果需要进行第二次差异备份,那就在你进行完对表的操作后再用一次下面的代码

backup database Student
to disk ='D:\Student.bak'
with DIFFERENTIAL;

还原数据库

还原完整数据库

从备份设备bk_ Student中恢复Student数据库

RESTORE DATABASE Student 
FROM DISK = 'D:\Student.bak' 
WITH REPLACE, RECOVERY

还原差异数据库

将Student数据库恢复到第一次差异备份后的状态

RESTORE DATABASE Student
FROM DISK = 'D:\Student.bak'
WITH NORECOVERY

下面FILE可以在服务器对象--备份对象--bk_Student2--介质内容中可以看到位置2是差异备份,位置1是完整备份的(如果是按照我这篇文章的顺序的话)

若在后面加入多次差异备份,可以更改file的值,当file=3时,还原的时候将会把第二次差异备份的内容还原,包括之前备份的内容

RESTORE DATABASE Student 
FROM DISK = 'D:\Student.bak'
WITH file=2, NORECOVERY;

当你执行完还原操作后,一定要进行下面的操作,这样就可以结束当前还原操作

RESTORE DATABASE Student
WITH RECOVERY

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在C语言中使用ODBC连接SQL Server数据库,需要以下步骤: 1. 安装ODBC驱动程序:下载并安装Microsoft SQL Server ODBC驱动程序,使其能够被程序调用。 2. 初始化ODBC环境:使用SQLAllocHandle函数初始化ODBC环境,为后续的连接操作做准备。 3. 建立连接:使用SQLConnect函数连接到SQL Server数据库,需要提供数据库的名称、用户名和密码等信息。 4. 执行SQL语句:使用SQLExecDirect函数执行SQL语句,可以是查询语句或更新语句等。 5. 处理结果:使用SQLBindCol函数绑定查询结果的每一列,然后使用SQLFetch函数获取每一行的数据。 6. 释放资源:使用SQLFreeStmt和SQLDisconnect函数释放连接和环境资源。 以下是一个使用ODBC连接SQL Server数据库的示例: ``` #include <stdio.h> #include <sql.h> #include <sqlext.h> int main(void) { SQLHENV henv; SQLHDBC hdbc; SQLHSTMT hstmt; SQLRETURN retcode; SQLCHAR szDSN[] = "myDSN"; SQLCHAR szUID[] = "myUser"; SQLCHAR szPWD[] = "myPassword"; SQLCHAR szConnStr[1024]; SQLCHAR szSqlStmt[1024]; SQLCHAR szCol1[256]; SQLCHAR szCol2[256]; SQLINTEGER iCol1; SQLINTEGER iCol2; // 初始化ODBC环境 retcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); retcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); // 建立连接 sprintf(szConnStr, "DSN=%s;UID=%s;PWD=%s", szDSN, szUID, szPWD); retcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); retcode = SQLDriverConnect(hdbc, NULL, szConnStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_COMPLETE); // 执行SQL语句 sprintf(szSqlStmt, "SELECT col1, col2 FROM myTable"); retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); retcode = SQLExecDirect(hstmt, szSqlStmt, SQL_NTS); // 处理结果 retcode = SQLBindCol(hstmt, 1, SQL_C_CHAR, szCol1, sizeof(szCol1), NULL); retcode = SQLBindCol(hstmt, 2, SQL_C_LONG, &iCol2, 0, NULL); while (SQLFetch(hstmt) == SQL_SUCCESS) { printf("%s, %d\n", szCol1, iCol2); } // 释放资源 retcode = SQLFreeHandle(SQL_HANDLE_STMT, hstmt); retcode = SQLDisconnect(hdbc); retcode = SQLFreeHandle(SQL_HANDLE_DBC, hdbc); retcode = SQLFreeHandle(SQL_HANDLE_ENV, henv); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值