ウォッチ漫画『酒男子』新連載開始!

* 困っています

まだ大分初心者のひよこですが、

SQLServer2005をSQLCMDを使って操作しようと思っているのですが、
SQLServer2005をインストールしてコマンドプロンプトから操作しようとしても、

「'sqlcmd' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
と出てしまいます。

PATH設定とか必要なのでしょうか?
もしくは足りないソフトとかありますでしょうか?

こんな質問で申し訳ありませんが、
宜しければ教えて下さい<(_ _;)>

OS: Vista
SQL SERVER 2005 Express Edition (SQLEXPR_JPN.EXE)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちは。


環境設定をした記憶はあまりないのですが、そのエラーメッセージですとPATHが通ってないですね。

(インストールフォルダ)Microsoft SQL Server\90\Tools\Binn

にPATHを設定してください。このフォルダの中にsqlcmd.exeが入っているはずです。
    • good
    • 2
この回答へのお礼

お返事ありがとうございました。

よくわかりませんがPATH色々いじってたら、
動くようになりました<(_ _;)>

結局何が原因かわかりませんが
ご教授ありがとうございました*

お礼日時:2008/12/13 16:02

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qbatファイルからsql文実行

クライアントOS:WIN2000
Oracle:9i(サーバ(UNIX)上にあります)

現在、クライアントからbatを起動し、SQL文を投げ、結果を取得したいと思っております。
(SQL文は単純にTBLをカウントしているだけです)

・batの中身
sqlplus %UID%/%PASS%@%SID% @test.sql > output

結果は取得出来るのですが、余分な情報も結果に出力されてしまいます。結果のみを出力させるにはどうすればよろしいでしょうか?

・余分な情報
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production
に接続されました。

Aベストアンサー

sqlplus に -S オプションを追加してみればどうでしょうか。

参考URL:http://biz.rivus.jp/sqlplus_overview.html

Q処理件数を非表示にしたい

ManagementStudioでストアドプロシージャの開発をしています

開発中、デバッグのためにプロシージャをコールすると、SQLの発行の度に
「何件処理されました。」
「何件処理されました。」
「何件処理されました。」
「何件処理されました。」
「何件処理されました。」
・・・

と処理件数が表示され、確認の際に邪魔で困っています。
処理件数を非表示にするにはどうすれば良いでしょうか?

また同様に、SELECT文の発行ごとにSELECT結果がグリッドに表示されるのを非表示にできないでしょうか?

Aベストアンサー

処理件数を非表示にする方法

⇒SELECT文の前に「set nocount on」を記載すると件数は表示されません。

SELECT文の発行ごとにSELECT結果がグリッドに表示されるのを非表示にする方法

⇒デバッグのためには表示された方が良いと思いますが、
 とりあえず…SELECT文の前に「SET NOEXEC ON」を記載するとデバッグだけ実施され、
 グリッドは表示されません。
例であげると以下のとおりです。
SET NOCOUNT ON
SET NOEXEC NO
SELECT *
FROM DB.dbo.TableName
go

Qsqlcmdでクエリの実行結果をバッチの環境変数に入れる方法について

数字の場合は、&quot;exit(select 3);&quot;を実行するとerrorlevelに入ってきます。
文字の場合はどのようにしてバッチの環境変数に入れるのでしょうか?

Aベストアンサー

for /f "delims=" %%A in ('sqlcmd ~~~') do set A=%%A
echo %A%

QOSQLの起動について

SQLの絵本という本にそってSQLを勉強しようと思いこの本の通りにまずMSDE2000(Microsoft SQL Server 2000 Desktop Engine)をインストールして開始したんですが、コマンドプロンとでOSQLの起動をしようとしたところ、

C:\Documents and Settings\Owner>C:\MSDERelA\setup.exe SECURITYMODE=SQL SAPWD="eh
on"

C:\Documents and Settings\Owner>cd c:\

C:\>osql -U sa -P ehon
'osql' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

となってしまうのですが、どうしたらいいのでしょう?
アドバイスお願い致します。

Aベストアンサー

C:\Program Files\Microsoft SQL Server\80\Tools\Binn
に Osql コマンドはあります。
ここにパスを通すか、カレントディレクトリにすれば実行できますよ

QSQL Server 2008のsqlcmdコマンドでlocalhost以外で接続できない

SQL Server2008のsqlcmdコマンドでデータベースに接続しようとするのですが、localhostアカウント以外接続ができません。
理由を教えてください。

【成功】
sqlcmd -S localhost -d tempdb -E -i create.sql


【失敗】
sqlcmd -S 1.1.1.1 -d tempdb -E -i create.sql


【エラー内容】

エラー: Microsoft SQL Server Native Client 10.0: 通信リンクが失敗しました。。
Sqlcmd: エラー: Microsoft SQL Server Native Client 10.0: SQL Server への接続の確立中に、ネットワーク関連のエラーまたはインスタンス固有のエラーが発生しました。サーバーが見つからないか、アクセスできません。インスタンス名が正しいことと、SQL Server がリモート接続を許可するように構成されていることを確認してください。詳細については、SQL Server オンライン ブックを参照してください。。

SQL Server2008のsqlcmdコマンドでデータベースに接続しようとするのですが、localhostアカウント以外接続ができません。
理由を教えてください。

【成功】
sqlcmd -S localhost -d tempdb -E -i create.sql


【失敗】
sqlcmd -S 1.1.1.1 -d tempdb -E -i create.sql


【エラー内容】

エラー: Microsoft SQL Server Native Client 10.0: 通信リンクが失敗しました。。
Sqlcmd: エラー: Microsoft SQL Server Native Client 10.0: SQL Server への接続の確立中に、ネットワーク関連のエラーまた...続きを読む

Aベストアンサー

IPアドレスが正しいものであるならば、構成マネージャでプロトコル「TCP/IP」が有効になっていることと、インスタンスのプロパティでリモート接続が有効になっていることを確認してみてください。

QMAX値を条件にデータを取得するには?

SQL文で困っています。
ご教授下さい。


下記のようなデータがあった場合、それぞれの区分毎に
年月が最大(最新)のデータを取得したいです。
(実際には1レコードにその他項目があり、それらも取得します。)
<検索対象データ>
区分 年月   金額
-----------------------------
A   200412  600
A   200503  560
B   200311  600
B   200508  1000
B   200504  560
C   200508  400
C   200301  1100


<取得したいデータ>

区分 年月   金額
-----------------------------
A   200503  560
B   200508  1000
C   200508  400

よろしくお願いします。

Aベストアンサー

テーブル名をXXXとすると次のようなSQLでよいと思います。(最善の方法かどうかは自信がないですが)

select B.* from (select 区分, max(年月) as 年月 from XXX group by 区分) As A
inner join XXX as B on A.区分 = B.区分 and A.年月 = B.年月
order by B.区分

QバッチファイルからSQLファイルへ引数を渡したい!

こんばんは。
質問があります。
バッチファイル(.bat)を実行させてトランザクトSQL(SQL Server2005)の処理を行いたいのですが、その際に
・引数を渡す
・戻り値を返す
上記の二つのことって出来るんでしょうか?
自分なりに色々調べてはいるのですがどうしてもわかりません。。
もしどなたかご存知の方がいらっしゃったらぜひ教えてください。
分かりやすいサイトとかも助かります。
どうぞよろしくお願いいたします。

Aベストアンサー

osqlの-Qは引数のリテラルに書かれた コマンド実行結果をERRORLEVELに設定するようです

osql -E -dxxx -Q "EXIT( DECLARE @ret int; EXEC @ret = CheckRows; SELECT 'ret' = @ret )"
などのようにすると ストアドプロシージャ『CheckRows』の結果をERRORLEVELに設定するようです

QSQL Server のキャラクターセット(内部文字コード)は何処で定義するのでしょうか?

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問させていただきます。
以下2点についてどなたかコメント願います。
1.(Oracleでいうキャラクターセット)はどこで定義するのでしょうか?
2.OracleでいうNLS_LANGに相当するものはあるのでしょうか?
 (ひょっとしたらマイクロソフト製品なのでサーバもクライアントもCP932固定なのでしょうか?)

根本的にはシステム構築する上で『極力文字化けに遭遇したくない』思い出このような質問をさせていただきました。
『文字化け』について注意点などありましたら合わせてコメントいただければ助かります。
以上よろしくお願いします。

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問...続きを読む

Aベストアンサー

Windowsのロケールの設定を日本語にした状態でSQLServerをインストールした場合、cp932がデフォルトの照合順序になります。照合順序については参考URLをご覧下さい。

SQLServerではわかりませんが、PostgresではJDBCドライバ部分で変換していたように記憶しています。ODBCドライバではAutoTranslateという機能があります。

このため、ODBC接続で何も考えずにvarcharを使用するとcp932になります。

参考URL:http://www.microsoft.com/japan/msdn/sqlserver/sql2005/bb330962.aspx

Qテーブルの参照方法

よろしくお願いします。
SQLServer2005についての質問です。
(OS:Windows Server 2003 SP1)

サーバが2台あり、どちらにもSQL Server 2005 がインストールされ
ています。一方のサーバ(サーバA)に存在するテーブルを他方の
サーバ(サーバB)からTSQLで参照するにはどのようにすれば良い
でしょうか?

各サーバで必要な設定と、実行するTSQLのイメージを教えてください。

基本的なことかもしれませんが、調べてもさっぱり判らず困っています。
(sqlcmdを使うようだというところはなんとなく判りました)
どうぞよろしくお願い致します。

Aベストアンサー

リンクサーバを構築しないでもできますよ。
Management Studioから、リンク元のサーバを右Clickし、
サーバのプロパティを表示させます。
そこに、「接続」というタブがあるんで、
「このサーバへのリモート接続を許可する」をCheckONにしておく
ことと、

SQL Serverをインストールすると、
[構成ツール]の配下に「SQL Server セキュリティ構成」もインストールされるので、「サービスと接続のセキュリティ構成」を
選んで、SQL Server 2005 Surface Area Configuration を
起動させます。

[リモート接続]というタブがあるので
[ローカル接続および[リモート接続]を選択し、
適切なTCPプロトコルを設定し、適用させて、SQL Serverのサービスを
再起動すれば可能です。

細かい点としては、SQL Server Browser Serviceの有効化や
SQL Serverのファイアウォール設定を行う必要があります。

詳しいことは、ご確認頂いていたサイトの日本語版が
http://support.microsoft.com/kb/914277/ja-jp
にもありますので、少しはわかりやすいかと思います。

なお、設定後のSQLアクセスは、
select * from [サーバAのサーバ名].[DB名].[スキーマ名(dbo等)].[テーブル名]
で接続可能です。

よろしくお願いします。

参考URL:http://support.microsoft.com/kb/914277/ja-jp

リンクサーバを構築しないでもできますよ。
Management Studioから、リンク元のサーバを右Clickし、
サーバのプロパティを表示させます。
そこに、「接続」というタブがあるんで、
「このサーバへのリモート接続を許可する」をCheckONにしておく
ことと、

SQL Serverをインストールすると、
[構成ツール]の配下に「SQL Server セキュリティ構成」もインストールされるので、「サービスと接続のセキュリティ構成」を
選んで、SQL Server 2005 Surface Area Configuration を
起動させます。

[リモー...続きを読む

Qテーブル名を[]でくくらないとエラーになってしまう

テーブル名を[]でくくらないとエラーになってしまいます

sqlserver 2008 express edition を利用しているのですが

テーブル名 やカラム名に[]でくくってSQL文を実行しないと
エラーが出てしまいます
例えば

select * from [table]  の様にしないといけません
これを
select * from table で実行できるようにしたいのです
どうしたらいいのでしょうか

会社ではsqlserver2005を利用しているので
2008からは[]でくくる必要になったのでしょうか

それとも初期設定で何かしないといけないのでしょうか
設定方法を教えて下さい

sqlserver management studio2008もインストール済みです

Aベストアンサー

「table」はSQLの予約語です。そのため初期設定などで、「table」をそのままSQL文に使用することは出来ません。これは他のRDBも同様です。
SQL SERVERでは[]で括ることで、予約語をオブジェクト名に出来ますが、おすすめは出来ません。
なお、ANSI/ISOの標準規格では「"(ダブルクォーテーション)」で括ることで、同様にエラーを回避できます。SQL SERVERでも初期設定でANSI/ISOと同様に「"」で括るモードにすることは出来ますが、それでも予約語である以上何らかの対応は必要です。

> 会社ではsqlserver2005を利用しているので
> 2008からは[]でくくる必要になったのでしょうか

そんなことはないはずです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング