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