Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 从批处理文件运行SQL命令并获取错误信息_Sql Server_Batch File - Fatal编程技术网

Sql server 从批处理文件运行SQL命令并获取错误信息

Sql server 从批处理文件运行SQL命令并获取错误信息,sql-server,batch-file,Sql Server,Batch File,大家早上好。不知是否有人能帮我。我正试图写一个批处理文件,让我和其他人在我的工作中生活得更轻松,但我想寻求一些帮助。我通常会运行一系列不同的SQL脚本,这些脚本是我为安装一个特定的安装而编写的,我认为如果我将这些脚本全部移动到批处理文件中,生活会更轻松。我正在尝试从批处理文件运行以下命令: :T02 cls echo Qualifiers will be installed next with names of echo Q_AutoFax_CC_1 echo Q_AutoFax_CC_2 ec

大家早上好。不知是否有人能帮我。我正试图写一个批处理文件,让我和其他人在我的工作中生活得更轻松,但我想寻求一些帮助。我通常会运行一系列不同的SQL脚本,这些脚本是我为安装一个特定的安装而编写的,我认为如果我将这些脚本全部移动到批处理文件中,生活会更轻松。我正在尝试从批处理文件运行以下命令:

:T02
cls
echo Qualifiers will be installed next with names of
echo Q_AutoFax_CC_1
echo Q_AutoFax_CC_2
echo Q_AutoFax_CC_3
echo Q_AutoFax_CC_4
echo Q_AutoFax_CC_5
pause
cls
If Exist "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\100\Tools\Binn"
If Exist "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn"
If Exist "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\80\Tools\Binn"


sqlcmd /U eiw_admin /P eiw_admin /d cabinet /S . /Q 
"declare @q int
select @q = 1
While @q < 6
    Begin
        Insert into cabinet..qualifiers 
        select 'HL7', 'Q_AutoFax_CC_'+ convert(varchar(2),@q), 
        '%Physician_Code'+ convert(varchar(2),@q)+'% == (NULL) || %Physician_Code'+ convert(varchar(2),@q)+'% == (BLANK)', 'R'    
    select @q = @q + 1
    End"

pause
cls
…与选择、开始、插入和选择等相同


我想如果你想运行SQLCMD,你只需要把你的命令放在单引号里,这不对吗?

批处理文件中的SQL语句应该与
SQLCMD
语句在同一行。将SQL语句放在一个单独的文件中,并使用
-i
开关从文件中读取查询可能是最简单的方法。

是的……就是这样……我通常执行简单的SQL命令,它们是一行,这是它第一次跨多行,所以我不知道。非常感谢
declare @q int
select @q = 1
While @q < 6
    Begin
        Insert into cabinet..qualifiers 
        select 'HL7', 'Q_AutoFax_CC_'+ convert(varchar(2),@q), 
        '%Physician_Code'+ convert(varchar(2),@q)+'% == (NULL) || %Physician_Code'+ convert(varchar(2),@q)+'% == (BLANK)', 'R'    
    select @q = @q + 1
    End
Sqlcmd: '-Q': Missing argument. Enter '-?' for help. ' "declare @q int' is not recognized as an internal or external command, operable program or batch file