Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 批处理文件中的多个sqlcmd命令_Sql Server_Database Administration_Sqlcmd_Invoke Sqlcmd - Fatal编程技术网

Sql server 批处理文件中的多个sqlcmd命令

Sql server 批处理文件中的多个sqlcmd命令,sql-server,database-administration,sqlcmd,invoke-sqlcmd,Sql Server,Database Administration,Sqlcmd,Invoke Sqlcmd,我有多个sqlcmd命令要从批处理文件一次运行。当单独执行时,每条语句都能完美地工作。但是如果我在bat文件中给出5个sqlsmd命令,它只执行第一个命令,然后我在命令行屏幕中看到1>,什么也没有发生。如何解决这个问题 注意:每行之前的CALL语句不起作用,这是我在研究中发现的唯一解决方案 我正在做的示例:: sqlcmd -S servername-q "EXEC msdb.dbo.prc_Backup @BackupType = 'L' ,@DBName = 'db' ,@Bac

我有多个sqlcmd命令要从批处理文件一次运行。当单独执行时,每条语句都能完美地工作。但是如果我在bat文件中给出5个sqlsmd命令,它只执行第一个命令,然后我在命令行屏幕中看到1>,什么也没有发生。如何解决这个问题

注意:每行之前的CALL语句不起作用,这是我在研究中发现的唯一解决方案

我正在做的示例::

sqlcmd -S servername-q "EXEC msdb.dbo.prc_Backup @BackupType = 'L'       ,@DBName = 'db' ,@BackupDir = 'J:\MSSQL10.MSSQLSERVER\MSSQL\Backup\db2dba' ,@RetainHours = 47       , @create_sub_dir = 0      " >> C:\tlogresult.txt
sqlcmd -S servername -q "EXEC msdb.dbo.prc_Backup @BackupType = 'L'      ,@DBName = 'DB2RuntimeMigration' ,@BackupDir = 'J:\MSSQL10.MSSQLSERVER\MSSQL\Backup\DB2RuntimeMigration' ,@RetainHours = 47         , @create_sub_dir = 0      " >> C:\tlogresult.txt

在没有输入文件或查询的情况下执行该命令时,sqlcmd将连接到指定的SQL Server实例,然后显示一个新行,该行带有1>,后跟一个闪烁的下划线,名为sqlcmd提示符。1表示这是Transact-SQL语句的第一行,而sqlcmd提示符是您键入Transact-SQL语句时开始的点

在sqlcmd提示符下,您可以键入Transact-SQL语句和sqlcmd命令,如GO和EXIT。每个Transact-SQL语句都放在称为语句缓存的缓冲区中。键入GO命令并按ENTER键后,这些语句将发送到SQL Server。要退出sqlcmd,请在新行开头键入exit或QUIT

使用-o选项输出到文件,而不是通过管道将输出输出到文件,这将阻止您进入交互模式

或尝试

sqlcmd -S servername-q "EXEC msdb.dbo.prc_Backup @BackupType = 'L'       ,@DBName = 'db' ,@BackupDir = 'J:\MSSQL10.MSSQLSERVER\MSSQL\Backup\db2dba' ,@RetainHours = 47       , @create_sub_dir = 0      " >> C:\tlogresult.txt
exit
sqlcmd -S servername -q "EXEC msdb.dbo.prc_Backup @BackupType = 'L'      ,@DBName = 'DB2RuntimeMigration' ,@BackupDir = 'J:\MSSQL10.MSSQLSERVER\MSSQL\Backup\DB2RuntimeMigration' ,@RetainHours = 47         , @create_sub_dir = 0      " >> C:\tlogresult.txt"
exit

我无法通过bat文件运行它。我能做的是从命令行运行命令,在每个命令的末尾使用QUIT

试试大写字母Q

不要使用 [-q“cmdline查询”]

而是使用
[-Q“cmdline query”并退出]

当您从命令行运行它以便查看输出时,输出是什么?是否有暂停,等待您的响应?@brucedundwide在输出文件中,我只看到第一个命令执行的结果。在命令窗口中,我看不到任何指向我的输入。第一个命令后,只有一行闪烁。。然后开始等待。。如果您可以添加与备份统计数据输出等效的数据,那么您应该可以在tlogresults.txt文件中看到指示的进度或错误。是否有理由在diff 5 sqlcmd中运行它们。。您可以在一个sqlcmd中运行所有备份sql语句。@SqlSurfer第一个tlog成功,没有任何问题。第二行在allI没有被提取,我想附加输出文件,因为我们需要验证20000个tlog备份的日志。附加输出文件的任何解决方法?上面的文档页说明您可以使用EXIT或QUIT语句退出交互模式。如果-o无法进行追加,请尝试在sqlcmd调用之间添加一个链接。该链接用于没有-q参数的交互式sqlcmd。我只是不知道如何修复它。如果你能为我提供一些很好的示例脚本,请编辑答案以包含我建议你尝试的内容。