我有一个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
有办法做到这一点吗?
答案 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'")