sqlcmd return 仅计数 - 抑制文本

sqlcmd return only count - suppress text

我有一个 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

有办法吗?

花了我一段时间,但我找到了一个只使用 sqlcmd 的解决方案。

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

-W 删除尾随 space

-h-1 移除 headers

-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'")