Sql server sqlcmd-won';t不接受密码作为初始命令的一部分

Sql server sqlcmd-won';t不接受密码作为初始命令的一部分,sql-server,sqlcmd,Sql Server,Sqlcmd,我使用sqlcmd从UBUNTU机器查询SQL server数据库(为此安装了ODBC驱动程序) 如果我传递以下命令: sqlcmd -S xyz -d xyz -U xyz 系统会提示我输入密码,然后我可以成功地查询相关数据库。但是,如果通过下面的命令,我会收到消息“用户****登录失败”: sqlcmd -S xyz -d xyz -U xyz -P xyz 我需要能够一次性发送密码,因为我需要传递输入查询文件并将输出发送到特定位置。一旦我通过等待密码提示登录到数据库,我就不能再指定输

我使用sqlcmd从UBUNTU机器查询SQL server数据库(为此安装了ODBC驱动程序)

如果我传递以下命令:

sqlcmd -S xyz -d xyz -U xyz 
系统会提示我输入密码,然后我可以成功地查询相关数据库。但是,如果通过下面的命令,我会收到消息
“用户****登录失败”:

sqlcmd -S xyz -d xyz -U xyz -P xyz

我需要能够一次性发送密码,因为我需要传递输入查询文件并将输出发送到特定位置。一旦我通过等待密码提示登录到数据库,我就不能再指定输入/输出文件。如果您有任何见解,我们将不胜感激。

您是否尝试过在-p和值之间没有空格的情况下使用它?显示它们粘在一起。

您好,是的,但返回相同的登录失败消息。密码包含$character和一个数字,但这些似乎是允许的:这对我来说很好:
sqlcmd-S MyServer-U MyLogin-P password1$
。您可以查看错误日志以了解有关的更详细信息。您有哪个版本的SQL Server?实际上,您可以使用
:r
:out
在sqlcmd中指定输入和输出文件。您好,Pondlife,非常感谢您的帮助。我已经设法使用:r和out:在指定位置获得输出,但难以格式化输出,例如,如果我将以下内容构建到输入文件中:-o-h-1-s,-k2-W,我将获得一个空白输出csv。对于获取逗号分隔的输出,您有什么建议吗?再次感谢您,但如果您的数据包含逗号,它将无法正常工作。根据我的经验,sqlcmd对于生成CSV或任何其他格式化输出来说是一个非常糟糕的工具。对于CSV,最好尽可能使用,但如果要将数据复制到另一台SQL Server,请使用本机(二进制)文件格式,以完全避免格式问题。否则,使用首选语言编写的脚本通常会产生更好的结果。