• 締切済み

OSQLについて

Windows2000 SQLServer2000 を使っています。 クエリアナライザでSQLステートメントを作りました。 これを別の人が実行する場合、保存したSQLステートメントをクエリアナライザで開いて実行させる方式にしようと考えていたのですが、それではSQLステートメントを編集できてしまい、まずいので、バッチを使って保存したSQLステートメントを実行させたいと考えています。 そこでヘルプでOSQLについて調べたのですが、理解できないし、うまく使えません。 そもそもの考え方が間違っているのでしょうか? OSQLの使い方の簡単な例など教えていただけるとありがたいです。 よろしくお願いします。

noname#5252
noname#5252

みんなの回答

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.1

osql /u <ユーザー名> /p <Password> /i <クエリの保存されているファイル名> という構文を メモ帳などで作成し、 XXXX.batという形式で保存します。 XXXX.batをダブルクリックすれば クエリが実行されます。

関連するQ&A

  • osqlからのsql実行方法について

    Windows20003のSQL Server2000の環境で、あるテーブルのインデックスを指定して統計情報を更新する処理のバッチ化を考えており、osqlを使用すれば可能な所までは調査出来たのですが、、、 osqlから、SQL文をオプション"Q"にて実行する場合、例えばテーブル名 or インデックス名に「~」等の特殊文字を含む場合、そのまま実行するとシンタックスエラーとなり実行出来ませんでした。 テーブル名 or インデックス名に「~」等の特殊文字を含む場合の実行方法をどなたか御教授御願い出来ないでしょうか。。。 因みに、オプション"i"でsqlファイルを作成して実行しても、sql文に特殊文字があった場合はシンタックスエラーとなりました。 Query Analyzerでは、インデックス名を「"」囲み実行すれば、正常に処理される事は確認済みです。 【実行方法】 osql -E -S <サーバ名> -d <DB名> -Q "UPDATE STATISTICS <テーブル名> <インデックス名> WITH FULLSCAN"

  • OSQLからスクリプトファイルへの引数の渡し方

    こんにちは。 OSQLからの値の渡し方について教えて下さい。 バッチファイルの中にOSQL文を使用してデータを抽出する事を考えています。 具体的には、バッチファイルを実行時に日付を入力し、 入力された日付をOSQL文の中に記述しているスクリプトファイルへ値を渡し、 スクリプトファイルにあるSQL文を実行するというやり方です。 **バッチファイル** set /p %hiduke = "日付を入力して下さい。yyyymmdd -->" osql -S インスタンス -U ユーザ名 -P パスワード -d DB名 -i c:\script.sql > C:\結果.txt **スクリプトファイル(script.sqlファイル)** declare @hiduke char(8) set @hiduke = バッチから渡された値を指定 select * from uriage where 日付 = @hiduke という風な感じで考えています。 バッチからOSQLへの渡し方と、OSQLからスクリプトファイルへの渡し方、 その他、良い案があれば教えて頂けないでしょうか。 よろしくお願いします。

  • ファイルに書かれたSQLの実行方法(oracleとの違い)

    お世話になります。 SQLServer2000、クエリアナライザで質問があります。 ファイルに書かれた一連のSQLの実行したいとき、 ORACLEでは、SQL*PLUSから ファイル名の前に@をつけて実行できました。 また、SQLスクリプトの中で、別のSQLスクリプトを呼び出す場合は、@@を付ければできました。 このような事を、クエリアナライザから行いたい場合、どのようにすれば可能でしょうか? よろしくお願いします。

  • クエリの結果をCSV形式で抽出するには

    お世話になります。 SQL SERVER 2000 で質問させてください。 クエリ(SELECT文)の結果をCSV形式のファイルに落としたいのですが、バッチファイル(osqlでクエリ実行)からクエリを実行して、指定したディレクトリにCSVファイルを作成する方法を教えてください。 よろしくお願いします。

  • バッチでのSQL実行結果の分岐処理について。

    バッチでのSQL実行結果の分岐処理について。 お世話になっております。 バッチからsqlを実行してその結果によってそれ以降のバッチ全体の処理を停止させる方法を考えています。 手がかりがつかめずまったく先に進めないためアドバイスをいただけますでしょうか。 バッチの内容(start_del.bat) -------------------------------------------------------- osql -i.\del.sql -o c:\wk\log.txt -S gold -E osql -i.\create.sql -o c:\wk\log.txt -S gold -E ------------------------------------------------------------ SQLの内容(del.sql) ------------------------------------------------------------ BEGIN TRANSACTION; DELETE FROM LDDB.dbo.test WHERE b='0'; IF @@ERROR = 0 <--エラー判定にこのコマンドを使おうと考えました BEGIN *********************** END ELSE BEGIN ********************** END COMMIT TRANSACTION; ------------------------------------------------------------ 処理の概要: 1.バッチで最初にdel.sqlを実行します。 2.del.sqlの実行が失敗すれば、2つ目のバッチであるcreate.sqlは実行ささずに、バッチを終了させます。 *ポイントはdel.sqlの結果というのは、バッチからdel.sqlを実行できたかではなく、del.sqlの実行結果を判断するという点です。 教えていただきたいこと ・del.sqlの実行後、制御がバッチに戻ったときに、結果を確認してバッチを継続させるか終了させるかを判断させる方法はどのような仕組みを作ればいいのでしょうか。 Windows2003サーバーで、SQLServerは2005です。 初心者のためよく分かっていないことが多すぎで申し訳ありませんが、アドバイスをいただけますでしょうか。 よろしくお願いいたします。

  • レプリケーションの結果確認

    こんにちは。 SQL Server2000を使用しています。 レプリケーション(パブリケーション、サブスクリプション)の 実行結果を簡単に確認するために模索しております。 Enterprise Managerを使用すれば見る事はできるのですが、 それをクエリアナライザやOSQLを使用して確認したく、 適切なSPコマンドやシステムテーブルを教えて頂けないでしょうか。 自分なりに調べてはみたのですが、適切なものが見つからなく、 どうぞよろしくお願い致します。

  • varchar型の入力できる最大文字数について

    varcharでサイズを8000にしたフィールドに1000文字(例えば’aaa・・・「a」を1000文字・・・’)INSERTした後にそのフィールドをSELECTすると256文字しか入っていません。どうしてなんでしょうか? SELECT、INSERTなどのSQLの実行は”クエリ アナライザ”や”SQL Server Enterprise Manager”で試しました。 SQLServer初心者です。何卒宜しくお願い致します。

  • Sqlsever2005 T-SQL ストアドを変更するクエリの実行

    Sqlsever2005 T-SQL ストアドを変更するクエリの実行 お世話になります。 バッチで既存のストアドを変更したり、新規ストアドを作成する予定です。 エンタープライズマネージャーを使っているのですが、 ストアドを変更するクエリを保存すると拡張子.sqlとなり、 ローカルフォルダに保存されます。 ローカルにある.sqlを指定して実行する方法を教えていただけますでしょうか? ストアドと同じEXECを使えるのでしょうか?その際、ローカルのパスを指定するのがよくわかりません。 ヘルプをみるとだめそうな感じが。 または全く違う方法がありますでしょうか? 情報が不足しておりましたらご指摘くださいませ。 初心者な質問ですいませんが、宜しくお願い致します。。

  • SQLServerで更新ができない。

    環境  Windows NT SQLServer 7.0 SQLServerのクエリアナライザ等で参照(select文)は成功するのですが、 更新(update文やinsert文)を実行すると以下のエラーが発生します。 解決方法がわかる方いましたら教えてください。 サーバー : メッセージ 6、レベル 16、状態 1、行 4 指定された SQL Server が見つかりません。

  • ログインユーザーの追加について

     SQL Serverで、データベース"GRSdb"を作成しました。 Management Studioにてログインユーザーを追加しようと思い、新規ログインを作成しようとしましたが、下記のようなエラーメッセージが表示されました。  ログイン"uzuracch"の作成に失敗しました(MicroSoft.SqlServer.Smo) 追加情報  Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (MicroSoft.SqlServer.ConnectionInfo)  ユーザーにはこの操作を実行する権限がありません(MicroSoft SQL Server,エラー:15247) .このエラーに対する対処が分かりません。よろしくお願いします。 開発環境は、Windows7,VB2010PRO,SQLServer2008R2Expressです。