批处理备份若干表的数据(SQL Server)
WinXP ,SQL Server 环境下,现在需要用批处理备份若干表的数据,导出做成若干个DAT文件,
这个批处理文件应该怎么写呢?
------解决方案--------------------
方法有2 ,1和2的区别是,一个是sql文+queryout,一个是DB表名+out 。
[1] bcp "sql文" queryout 输出表名.txt -c -S Server名 -U 用户名 -P 密码
eg:bcp "SELECT * FROM [MyDb].[MySchema].[MyTable]" queryout out MyTable.txt -c -S localhost -U sa -P sa
[2] bcp “DB表名” out 输出表名.txt -c -S Server名 -U 用户名 -P 密码
eg:bcp " [MyDb].[MySchema].[MyTable]" out outMyTable.txt -c -S localhost -U sa -P sa
把上述语句保存在txt文件里,再把后缀名改为[.bat]双击执行即可
------解决方案--------------------[转帖]
1、先练习怎么在命令行用 bcp 导出那个表的数据;
2、写一个存储过程 usp_callCmd,在其内用 xp_cmdshell 调步骤 1 写的命令;
3、如果是 Enterprise Edition, 在 SQL Agent Service 中创建一个 job 来定期执行步骤 2 的 usp_callCmd;
4、如果是 Express Edition,在 OS 中写一个 scheduledBkp.bat,在其内用 oisql 执行步骤 2 的 usp_callCmd,再设置计划任务定期执行 scheduledBkp.bat;
5、Done.