【问题标题】:Running queries using osql使用 osql 运行查询
【发布时间】:2015-07-20 21:18:50
【问题描述】:

当执行以下任一命令时:

osql -E -S ComputerName\InstanceName
osql -E -S ComputerName\InstanceName -i MyScript.sql -o MyOutput.rpt
osql -E -q "SELECT * FROM Northwind.dbo.Shippers"
osql -E -Q "SELECT * FROM Northwind.dbo.Shippers" -o MyOutput.rpt

我收到以下错误:

[SQL Server Native Client 10.0]SQL Server Network Interfaces: Connection
string is not valid [87].
[SQL Server Native Client 10.0]Login timeout expired
[SQL Server Native Client 10.0]A network-related or instance-specific error
has occurred while establishing a connection to SQL Server. Server is not
found or not accessible. Check if instance name is correct and if SQL Server
is configured to allow remote connections. For more information see SQL Server
Books Online.

但是,我可以毫无问题地从 SSMS 登录并运行 SELECT 查询。

如何使用 osql 针对 SQL Server 2008 运行查询?

【问题讨论】:

标签: sql sql-server database sql-server-2008 osql


【解决方案1】:

您是否在 SQL Server 中将您的登录帐户设置为用户?

我通常使用特定帐户和 SQL Server 登录而不是可信登录,然后只需在命令行上使用 -S、-D、-U 和 -P 选项指定数据库坐标:

osql -S %SERVERNAME% -U %USERNAME% -P %PASSWORD% -d %DBNAME% 

例如,如果您的服务器名称是 MyServer\SQL2008 并且您的用户名是 Foo 并且您的密码是 Bar 并且您的数据库是 MyDB,那么您将使用这个:

osql -S MyServer\SQL2008 -U Foo -P Bar -d MyDB 

然后继续选择其他选项。

如果您真的想使用您的受信任连接,您需要转到 SQL Server Management Studio,并确保将您当前的 Widows 登录名添加为用户并为您的数据库授予适当的权限等。

在 SSMS 中,手动连接到您的服务器(可能是“sa”用户和密码),然后展开“安全”节点并查看登录信息。如果未列出您当前登录的 Windows 用户,您需要右键单击,添加新登录名,然后添加当前用户。

那么您应该能够使用受信任的连接运行。

【讨论】:

  • 谢谢。我没有管理员权限。如果我能够从 ssms 中进行选择,为什么它不能从 osql 中工作?
【解决方案2】:

您必须在一行中运行所有命令 像这样

osql -E -S ComputerName\InstanceName -i MyScript.sql -o MyOutput.rpt

osql -E -S ComputerName\InstanceName -Q "SELECT * FROM Northwind.dbo.Shippers" -o MyOutput.rpt

现在您必须查看是否可以登录 SQL Server,或者服务是否已启动,或者是否启用了 TCP/IP 协议

【讨论】:

  • SQL Server 浏览器服务似乎没有运行。这可能是问题吗?我没有权限启动服务
  • SQL Server Browser 适用于名为 SQL 的实例和集群安装。
【解决方案3】:

使用 Server name: 字段中的值作为 ComputerName\InstanceName。 (例如 MYPC\SQLEXPRESS) 类型:

osql -E -S MYPC\SQLEXPRESS

您将看到交互式提示。 然后输入你的命令:

  1. USE pubs
  2. GO

另外,你可以使用sqlcmd:

sqcmd -E -S MYPC\SQLEXPRESS

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2018-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多