Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQLCMD:!!不产生输出的目录_Sql Server_Cmd_Sqlcmd - Fatal编程技术网

Sql server SQLCMD:!!不产生输出的目录

Sql server SQLCMD:!!不产生输出的目录,sql-server,cmd,sqlcmd,Sql Server,Cmd,Sqlcmd,我在Windows 7上的cmd提示符下启动SQLCMD: C:\>sqlcmd -S (localdb)\MSSQLLocalDB 1> :!! dir 2> go 1> quit 但我在控制台上看不到任何输出。我想这是新手犯的错误。我做错了什么?每次在mysqlcmd中手动输入命令时,您都需要使用go跟随一行,这样它将检测到命令的结束并开始执行。很可能会出现错误。可能是(localdb)\MSSQLLocalDB在没有读取系统驱动器内容权限的帐户下运行 否则你会看到

我在Windows 7上的cmd提示符下启动SQLCMD:

C:\>sqlcmd -S (localdb)\MSSQLLocalDB
1> :!! dir
2> go
1> quit

但我在控制台上看不到任何输出。我想这是新手犯的错误。我做错了什么?

每次在mysqlcmd中手动输入命令时,您都需要使用go跟随一行,这样它将检测到命令的结束并开始执行。很可能会出现错误。

可能是
(localdb)\MSSQLLocalDB
在没有读取系统驱动器内容权限的帐户下运行

否则你会看到类似于:

 Volume in drive C is Windows
 Volume Serial Number is A866-F891

 Directory of 

08-Feb-19  09:30    <DIR>          .
08-Feb-19  09:30    <DIR>          ..
15-Sep-18  10:06    <DIR>          0409
23-Aug-16  14:12            21,007 07010000000000000000000000000000.tlbin
17-Jan-19  09:55    <DIR>          1033
15-Sep-18  08:29             2,151 12520437.cpx
15-Sep-18  08:29             2,233 12520850.cpx
15-Sep-18  08:29               232 @AppHelpToast.png
...
驱动器C中的卷是Windows 卷序列号为A866-F891 目录 08-Feb-19 09:30。 08-Feb-19 09:30。。 2018年9月15日10:06 0409 2016年8月23日14:12 21007 07010000000000000000000000.tlbin 1月19日09:55 1033 2018年9月15日08:29 2151 12520437.cpx 2018年9月15日08:29 2233 12520850.cpx 2018年9月15日08:29 232@AppHelpToast.png ...
就我所知,该实用程序只是有一个bug。用process explorer查看它时,会发现当试图运行命令时,它会通过在任何工作目录中附加“C:\WINDOWS\system32\cmd.exe”来创建无效的cmd.exe路径


因此,如果您从
C:\
执行sqlcmd,它将尝试运行
C:\“C:\WINDOWS\system32\cmd.exe”
,但由于路径无效而失败。

尝试过,没有乐趣。我更新了原始帖子以显示我的工作和结果,因为本地adminLocalDB总是在用户安全上下文下运行;也就是说,LocalDB从不使用来自本地管理员组的凭据运行。-那很好。我的用户帐户位于Windows系统管理员组中。此外,我在任何文件夹上都会得到相同的结果,即使c:\tempDocumentation说LocalDB忽略了管理员权限,所以即使您的帐户是LocalAdmin,LocalDB也不会使用该权限。文档中的另一条语句,可能会更清楚-这意味着LocalDB实例使用的所有数据库文件都必须使用所属用户的Windows帐户进行访问,而不考虑本地Administrators组中的成员身份。。这意味着LocalDB无法利用管理员权限访问文件系统,我认为这是您观察到的SQLCMD行为的一个原因。我认为您可能没有正确地考虑这一点。IIUC,当您使用时:!!命令,SQLCMD只是在调用它的相同上下文中将其传递给shell。您的问题得到了回答吗?如果是这样,考虑把它标记为这样的一个。