怎么在用一个批处理写完一个SQL命令

2024-12-04 07:05:08
推荐回答(3个)
回答(1):

把你的SQL语句放到SQLCompleteBackup.sql 文件里就可以了。
sqlcmd -i D:\SQLDATABAK\SQLCompleteBackup.sql -o D:\SQLDATABAK\SQLCompleteBackup.txt

要理解意思 -i D:\SQLDATABAK\SQLCompleteBackup.sql 是执行后面路径下的文件,所以你把你的SQL语句放到这个文件里就行了
-o D:\SQLDATABAK\SQLCompleteBackup.txt是输出日志文件,将执行的日志写到后面路径下的文件里

回答(2):

bat文件中这么写
isql -Usa -Psa -S. -ddata_bak -e -Q "exec p_backup"

存储过程p_backup这么写

CREATE PROCEDURE p_backup AS
DECLARE @bakfilename nvarchar(50);
set @bakfilename = 'D:\Fodata' + datename(yy,getdate()) +datename(mm,getdate()) + datename(dd,getdate())+'.bak';
BACKUP DATABASE [xyk] TO DISK = @bakfilename WITH NOFORMAT, NOINIT, NAME =N'fodata-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10;

GO

其实,
set @bakfilename = 'D:\SQLBACKUP\Fodata' + datename(yy,getdate()) +datename(mm,getdate()) + datename(dd,getdate())+'.bak';
可以简化为
set @bakfilename = 'D:\Fodata' + convert(varchar(8),getdate(),112) + '.bak'

回答(3):

参考帖子
http://zhidao.baidu.com/question/168064727.html
中我的回答吧