大文件SQl脚本怎么还原以及SQlsqlserver怎么全自动备份数据库

1:导出的SQl脚本文件通常大于100M左右就会还原不了,不是报错就是说系统文件找不到(sql脚本是直接拖进来的,不存在路径的问题).

 

2:CMD 使用 OSQL命令或者Sqlcmd命令都是可以解决的,其实就是采用的ODBC的技术,一行一行的去执行(这样几十G的脚本文件都没有问题).

 

3:经个人测试,下面两个命令都可以:

  osql -S"XB-201907130929\ZRFSQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"FenggeTestDB" 

  sqlcmd -S"XB-201907130929\ZRFSQLSERVER" -U"sa" -P"QQ88" -i"mysqlBack.sql" -d"FenggeTestDB"

 

4:-S 你的sqlserver数据库的服务器名称; -U 用户名; -P 密码; -i 你的文件路径; -d 你的数据库名称(建议先在数据库中创建好).

 

5:如下测试的截图:

5.1:报错

 

 5.2:在SQl脚本的路径下打开CMD并查看对应的命令:

 

5.3执行命令后会一行一行的显示:一行受到影响,最后成功的效果如下:可以看到数据库已经有表以及数据

 

 

6:全自动备份SQlserver中的数据库:直接上干货

     6.1 手动备份单个文件:

Backup Database database_name
To disk='X:\folder\database_name_mirror1.backupname.bak'

     6.2:使用作业计划全自动备份, SQl脚本如下:

DECLARE @date DATETIME=GETDATE();
DECLARE @name VARCHAR(20);
DECLARE @okpath varchar(100);
SELECT @name= CONVERT(VARCHAR,DATEPART(YEAR,@date),10) +
'-'+ CONVERT(VARCHAR,DATEPART(MONTH,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(DAY,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(HOUR,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(MINUTE,@date),10)+
'-'+CONVERT(VARCHAR,DATEPART(SECOND,@date),10);
SET @okpath='D:\upfile\upfile_backup'+ convert(varchar,@name,20)+'.bak'
PRINT(@name);
PRINT(@okpath);

BACKUP Database DBTEST
 To disk=@okpath  --WITH int;
View Code

7:最终我们可以看到,手动备份和脚本备份的是一样的效果

 

8:有时候我们有sql写入的脚本文件,但是数据内容超过1000行,此时会提示 insert超出最大1000行

 

解决方案可以如下:

 

 9:最后关于怎么全自动执行脚本,请参考我之前写的学习笔记

  https://www.cnblogs.com/Fengge518/p/11483109.html

 

posted @ 2019-12-10 13:29  天天向上518  阅读(1166)  评论(0)    收藏  举报