大家,早安。想知道是否有人可以帮助我。我正在尝试编写一个批处理文件,以使我的生活和其他人在我的工作中生活更轻松,但想寻求一些帮助。我通常会运行我编写的一堆不同的 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
我通常只运行:
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
来自SQL,它运行得很好......我之前在批处理文件中使用过SQL命令......是否需要为此做一些不同的事情,因为它是一个循环而不是通用命令?该文件正在从数据库服务器运行,我收到一个错误:
Sqlcmd: '-Q': Missing argument. Enter '-?' for help. ' "declare @q int' is not recognized as an internal or external command, operable program or batch file
.....同样的事情选择,开始,插入和选择......等
我想如果你想运行 SQLCMD,你只需要把你的命令放在单引号中,这不正确吗?