5

次のいずれかのコマンドを実行する場合:

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.

ただし、問題なくログインしSELECTて SSMS からクエリを実行できます。

osql を使用して SQL Server 2008 に対してクエリを実行するにはどうすればよいですか?

4

3 に答える 3

5

ログイン アカウントを 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 ユーザーがリストにない場合は、右クリックして新しいログインを追加し、現在のユーザーを追加します。

その後、信頼できる接続で実行できるはずです。

于 2015-07-20T21:32:56.700 に答える