sqlcmd仅返回计数 - 抑制文本

时间:2017-11-04 11:09:58

标签: bash sqlcmd

我有一个bash文件,它执行SQLCMD查询以检查是否存在数据库:

sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -Q "SET NOCOUNT ON SELECT count(*) FROM master.sys.databases WHERE name = N'MyDatabaseHere'")

我尝试添加SET NOCOUNT ON,但仍然会输出如下:

------

1

我将结果分配给变量,我希望能够像这样检查它

myvariable == 1

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

我花了一段时间,但我发现只使用sqlcmd的解决方案。

您需要使用-W -h-1 -k

-W删除尾随空格

-h-1删除标题

-k从输出中删除所有控制字符,例如制表符和换行符。

TABLENAME=$(/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $SA_PASSWORD -d master -W -h-1 -k -Q "SET NOCOUNT ON SELECT name FROM master.sys.databases WHERE name = N'MyDatabaseNameHere'")