SQL Server新手 - 我试图通过PowerShell使用SQLCMD实用程序访问计算机上的localdb \ MSSQLLocalDB服务器。我使用的是PowerShell v5,.NET v5.0,当我在Microsoft SQL Server Management Studio 2014中连接到服务器名称时,服务器名称为<?php echo $_GET['user'];?>
。
(localdb)\MSSQLLocalDB
和PS C:\> sqlcmd -S localdb\MSSQLLocalDB
会导致此错误:
Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序11:SQL Server 网络接口:找到指定的服务器/实例时出错 [xFFFFFFFF的]。
我在Management Studio中使用PS C:\> sqlcmd -S .\localdb\MSSQLLocalDB
查询服务器名称,并在上述命令中的SELECT @@ServerName
之后使用该名称并得到相同的错误。
-S
出现此错误:
Sqlcmd:错误:用于SQL Server的Microsoft ODBC驱动程序11:命名管道 提供程序:无法打开与SQL Server的连接[53]
其他说明:我可以使用PS C:\> sqlcmd -S localdb
连接到服务器并使用此连接字符串在C#控制台应用程序中使用名为 testdb01 的数据库:
System.Data.SqlClient
关于从哪里开始或如何处理此问题的任何想法?
答案 0 :(得分:4)
将参数从PowerShell传递到EXE可能很棘手。我认为你需要使用单引号来转义parens,这意味着内容是一个静态文字字符串,或者是反引号转义字符:
sqlcmd -S '(localdb)\MSSQLLocalDB' -Q "Select @@servername"
sqlcmd -S `(localdb`)\MSSQLLocalDB -Q "Select @@servername"
甚至使用变量:
PS H:\> $myserver = '(localdb)\MSSQLLocalDB'
PS H:\> sqlcmd -S $myserver -Q "Select @@servername"
另外,如果您使用的是sqlcmd,或许可以查看PowerShell更原生的Invoke-Sqlcmd:
PS SQLSERVER:\> Invoke-Sqlcmd -Server $myserver -Query "Select @@servername"