查询在 Management Studio 中工作正常,但从批处理 file/CMD 提示中抛出错误

Query works fine in Managment Studio but throws error from batch file/CMD prompt

我有这个 sql 查询:

CREATE USER [myDomain\myUser] FROM LOGIN [myDomain\myUser];

当我从 SQL Management Studio 执行时工作正常。即在(USE [myDB];)

之前为我"use"d的数据库成功创建了一个用户

我运行正在从 DOS 批处理文件中执行相同的查询:

sqlcmd -E -S localhost\myInstance -Q "CREATE USER [myDomain\myUser] FROM LOGIN [myDomain\myUser];"

它抛出错误:

Msg 15023, Level 16, State 1, Line 1
User, group, or role 'myDomain\myUser' already exists in the current database.

我最初认为我的脚本一定有问题,然后尝试从命令提示符 运行 它。它抛出了同样的错误。

请问是什么原因造成的?

for the DB I "use"d before (USE [myDB];)

您没有指定要在 SQLCMD 调用中使用的数据库。键入 sqlcmd /? 或阅读 here 如何指定数据库。