Osql ユーティリティを使用して SQL Server Desktop Engine (MSDE 2000) または SQL Server 2005 Express Edition を管理する方法

サポートが終了した KB の内容についての免責事項

この記事は、マイクロソフトがサポートを提供しなくなった製品について記述しています。 したがって、この記事は「現状のまま」で提供され、更新されることはありません。

概要

SQL Server Desktop Engine (MSDE 2000 の場合とも呼ばれます) は、バック グラウンドで実行するのには主に設計されているために、独自のユーザー インターフェイスがありません。ユーザーは、MSDE 2000 が埋め込まれているプログラムを使用して操作できます。MSDE 2000 に付属している唯一のツールは、 osqlユーティリティです。Sql.exe、実行可能ファイルは、MSDE 2000 の既定のインスタンスの mssql \binn フォルダーにあります。この資料では、 osqlユーティリティを使用して MSDE 2000 を管理する方法について説明します。

SQL Server 2005 を使用する場合は、SQL Server 2005 Express Edition を管理するためにもosqlユーティリティを使用することができます。ただし、この機能は、Microsoft SQL Server 2005 の今後のバージョンで削除されます。しないで新しい開発作業でこの機能を使用して現在この機能を使用するアプリケーションを変更することをお勧めします。Sqlcmd ユーティリティを使用してください。Sqlcmd ユーティリティを使用する方法の詳細については、次の Microsoft Developer Network (MSDN) Web サイトを参照してください。

Osql とは何ですか。

Osqlユーティリティは、Transact SQL ステートメントおよびスクリプト ファイルを実行するために使用できる Microsoft Windows の 32 コマンド プロンプト ユーティリティです。Osqlユーティリティは、サーバーと通信するのには、ODBC データベース アプリケーション プログラミング インターフェイス (API) を使用します。


Osql を使用するにはどうするか。

通常、方法は、次のosqlユーティリティを使用します。
  • ユーザーは、コマンド プロンプトの動作と同様の方法で Transact SQL ステートメントを対話的に入力します。
  • ユーザーが送信、 osqlジョブのいずれかで。
    • 実行する 1 つの Transact SQL ステートメントを指定します。- または -

    • - または -をポイントして、ユーティリティを実行するのには、Transact SQL ステートメントを含むスクリプト ファイルです。

Transact SQL ステートメントを対話的に入力します。

Osqlユーティリティのオプションの一覧を表示するには、コマンド プロンプトで次を入力し、ENTER キーを押します。

osql -?


Osqlユーティリティの各オプションの詳細については、SQL Server Books Online の「osql ユーティリティ」を参照してください。

Transact SQL ステートメントを対話的に入力するには、次の手順を実行します。

  1. MSDE 2000 が実行されていることを確認します。
  2. MSDE 2000 に接続する (詳細については、「SQL Server デスクトップ エンジン (MSDE 2000) に接続する」セクションを参照してください)。
  3. Osqlプロンプトで、Transact SQL ステートメントを入力し、ENTER キーを押します。入力の各行の末尾で ENTER を押すと、 osqlはその行のステートメントをキャッシュします。

    • 現在キャッシュされているステートメントを実行するには、Go を入力し、し、ENTER キーを押します。

    • Transact SQL ステートメントのバッチを実行するには、別々 の行に各 Transact SQL コマンドを入力します。次に、バッチの終了を通知し、現在キャッシュされているステートメントを実行する最後の行に移動」を入力します。

    コンソール ウィンドウに結果が表示されます。

  4. Osqlを終了するには、終了、または終了時を入力し、ENTER キーを押します。

Osql ジョブを送信します。

通常、2 つの方法でosqlジョブを送信します。方法があります。

  • 1 つの Transact SQL ステートメントを指定します。

    - または -

  • - または -ユーティリティをスクリプト ファイルを指定します。
各メソッドの詳細については、ここで。

1 つの Transact SQL ステートメントを指定します。

MSDE 2000 のローカルの既定のインスタンスに対して、Transact SQL ステートメントを実行するのには、このようなコマンドを入力します


osql-e-q"Transact SQL ステートメント]


どこ

  • -Eは、Microsoft Windows NT 認証を使用します。

    - と -

  • - と -- qは、Transact SQL ステートメントを実行しますが、クエリが完了すると、 osqlは終了しません。
Transact SQL ステートメントを実行し、 osqlを終了するには、 -qの代わりに、 -q引数を使用します。


ユーティリティがスクリプト ファイルを指す

ユーティリティがスクリプト ファイルを指す、次の手順を実行します。
  1. (MyQueries.sql) などの Transact SQL ステートメントのバッチを含むスクリプト ファイルを作成します。
  2. コマンド プロンプトを開き、次のようなコマンドを入力し、ENTER キーを押します

    osql-e-i input_file


    どこ

    -i 入力ファイルは、スクリプト ファイルの完全パスです。たとえば、スクリプト ファイルの myQueries.sql は、C:\Queries フォルダーにある、C:\Queries\myQueries.sql での-i 入力ファイルのパラメーターを置き換えます。

    スクリプト ファイルの結果がコンソール ウィンドウに表示されます。結果をファイルにリダイレクトするには場合、は、上記のコマンドに-ooutput_fileの引数を追加します。次に例を示します。

    osql-e-i input_file-o output_file


    どこ

    output_fileは、出力ファイルの完全パスです。

    段落番号を削除し、出力内のシンボルを表示するには、上記のコマンドに-nオプションを追加します。次に例を示します。

    osql-e-i input_file-o output_file - n

SQL Server デスクトップ エンジン (MSDE 2000) への接続します。

MSDE 2000 に接続するには、次の手順を実行します。

  1. MSDE 2000 が実行されていることを確認します。
  2. 接続する MSDE 2000 のインスタンスをホストしているコンピューターでコマンド プロンプトを開きます。
  3. 次のコマンドを入力し、ENTER キーを押します。

    osql-e


    これを実行する Windows 認証を使用して MSDE 2000 のローカル コンピューター上の既定のインスタンスに接続します。

    MSDE 2000 の名前付きインスタンスに接続するに次のように入力します。

    osql-e-s servername\instancename


    次のエラー メッセージが表示されたら、MSDE 2000 が実行されていない可能性があります。 またはインストールされている MSDE 2000 の名前付きインスタンスに間違った名前を入力した可能性があります。

    [共有メモリ]SQL Server が存在しないか、アクセスが拒否されました。
    [共有メモリ]できませんでした。
    正常に、サーバーに接続している、次のプロンプトが表示されます。

       1>

    このプロンプトは、 osqlが開始されたことを示します。Transact SQL ステートメントを対話的に入力することができ、コマンド プロンプトの行に結果が表示されます。

MSDE 2000 を管理します。

この資料の残りのセクションで紹介について簡単に、Transact SQL コマンドを MSDE 2000 を管理するために最も頻繁に使用します。

新しいログインを作成します。

ユーザーは、有効なログイン id を指定せずに SQL Server に接続できません。Sp_grantloginストアド プロシージャは、Windows 認証を使用して SQL Server のインスタンスに接続するための SQL Server ログインとして使用するため (グループまたはユーザー アカウントのいずれか) は、Microsoft Windows ネットワークのアカウントを認証に使用されます。次の使用例は、SQL Server のインスタンスに接続する Corporate\Test をという名前の Windows NT のユーザーを許可します。

EXEC sp_grantlogin 'Corporate\Test'
Sysadmin固定サーバー ロールsecurityadminのメンバーだけでは、 sp_grantloginストアド プロシージャを実行できます。役割の詳細については、SQL Server Books Online の「役割、SQL Server アーキテクチャ」トピックを参照してください。

Sp_grantloginストアド プロシージャの詳細については、「sp_grantlogin、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピックです。

SQL Server 認証を使用して新しい SQL Server 接続のログイン アカウントを作成するのにには、 sp_addloginストアド プロシージャを使用します。次の例では、「こんにちは」のパスワードを使用して「テスト」という名前のユーザーの SQL Server ログインを作成します。

EXEC sp_addlogin 'test','hello'
Sysadmin固定サーバー ロールsecurityadminのメンバーだけでは、 sp_addloginストアド プロシージャを実行できます。Sp_addloginストアド プロシージャの詳細については、「sp_addlogin、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピックです。

データベースへのアクセスします。

操作dboがデータベースへのアクセスを許可するまで、ユーザーは、SQL Server のインスタンスに接続した後でデータベースを実行できません。Sp_grantdbaccessストアド プロシージャを使用すると、現在のデータベースに新しいユーザーのセキュリティ アカウントを追加します。次の例では、現在のデータベースに Corporate\BobJ をという名前の Microsoft Windows NT ユーザー アカウントを追加し、"Bob"の名前にします。
EXEC sp_grantdbaccess 'Corporate\BobJ', 'Bob'

Sp_adduserストアド プロシージャは、 sp_grantdbaccessストアド プロシージャと同じ機能を実行します。Sp_adduserストアド プロシージャは下位互換性があるためには、 sp_grantdbacessストアド プロシージャを使用することをお勧めします。

Sysadmin固定サーバー ロール、 db_accessadminおよび固定データベース ロールdb_ownerのメンバーだけでは、 sp_grantdbaccessストアド プロシージャを実行できます。Sp_grantdbaccessストアド プロシージャの詳細については、「sp_grantdbaccess、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピックです。

ログインのパスワードを変更する方法

ログインのパスワードを変更するには、 sp_passwordストアド プロシージャを使用します。次の例では、「こんにちは」に、"ok"から「テスト」のログインのパスワードを変更します。

EXEC sp_password 'ok', 'hello','test'

自分のログインのパスワードを変更しているユーザーのパブリック ロールにアクセス許可の既定値を実行します。Sysadminロールのメンバーだけでは、他のユーザーのログインのパスワードを変更できます。Sp_passwordストアド プロシージャの詳細については、「sp_password、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピック

データベースを作成します。

MSDE 2000 データベースは、データ、ビュー、インデックス、ストアド プロシージャ、トリガー、データを使用して実行されたアクティビティをサポートするために定義されているなど、他のオブジェクトを含むテーブルのコレクションで構成されています。MSDE 2000 データベースを作成するには、Transact-SQL の [データベースの作成] コマンドを使用します。データベースの作成の詳細については、SQL Server Books Online の「データベースの作成」トピックを参照してください。

次の例では、 Testという名前のデータベースを作成します。コマンドには、追加のパラメーターは追加されません、ため、テスト用データベースは、 modelデータベースと同じサイズになります。

CREATE DATABASE Test
データベースの作成のアクセス許可では、 sysadmin固定サーバー ロールdbcreatorのメンバーが既定値です。[データベースの作成] コマンドの詳細については、SQL Server Books Online の「データベースの作成、Transact SQL リファレンス」トピックを参照してください。

新しいデータベース オブジェクトを作成するには、作成の Transact SQL コマンドを使用します。たとえば、新しいテーブルを作成するには、Transact-SQL の作成] コマンドを使用します。詳細については、SQL Server オンライン ブックを参照してください。

バックアップおよびデータベースを復元します。

SQL Server のバックアップと復元コンポーネントは、SQL Server データベースに格納されている、重要なデータを保護するため、重要な保護手段を提供します。

適切な計画を立てることなど、多くの障害から回復できます。
  • メディア障害が発生します。
  • ユーザーのエラーです。
  • サーバーの恒久的な損失です。
さらに、バックアップおよびデータベースを復元する役に 1 つのサーバー間でデータベースをコピーするなど、他の目的。1 台のコンピューターからデータベースをバックアップし、別のデータベースを復元する、迅速かつ容易にコピーを作成するデータベースの。

データベースの詳細についてはバックアップし復元操作、復元するデータベースのバックアップ」「SQL Server Books Online トピックを参照してください。

Mydbという名前のデータベースの完全データベース バックアップを実行、バックアップの Mydb.bak では、名前を指定し、C:\Msde\Backup フォルダーにバックアップを格納する例を次に。

BACKUP DATABASE mydb TO DISK = 'C:\MSDE\Backup\mydb.bak'

次の例は、 mydbという名前のデータベースのログ バックアップを実行、バックアップの Mydb_log.bak では、名前を指定し、C:\Msde\Backup フォルダーに格納しておく。

BACKUP LOG mydb TO DISK = 'C:\MSDE\Backup\mydb_log.bak'

Sysadmin固定サーバー ロールおよびdb_ownerdb_backupoperatorのメンバーにデータベースのバックアップとバックアップのログのアクセス許可の既定では固定データベース ロールです。BACKUP ステートメントの詳細については、SQL Server Books Online の「バックアップ、Transact SQL リファレンス」トピックを参照してください。


MSDE には、スケジュールされたジョブを管理するためのSQL Server エージェントサービスが含まれています。などを作成でき、Transact SQL のバックアップ ジョブをスケジュールできます。SQL Server エージェント サービスは、ジョブのスケジューリングを管理します。MSDE 2000 でバックアップを実行し、バックアップのスケジュールを設定するさまざまなストアド プロシージャを使用する方法のサンプル コードについては、次の資料、マイクロソフト サポート技術情報を参照してください。

Transact SQL を使用して Microsoft データ エンジン データベースをバックアップするには、方法を241397
SQL Server エージェント サービスの詳細については、SQL Server Books Online の「SQL Server エージェント サービス」のトピックを参照してください。

データベースのバックアップは、プロセスの半分だけです。バックアップからデータベースを復元する方法を知っているが重要です。次の例では、C:\Msde\Backup\Mydb.bak のバックアップ ファイルからmydbというデータベースを復元します。

RESTORE DATABASE mydb FROM DISK ='C:\MSDE\Backup\mydb.bak'
復元されるデータベースが存在しない場合、ユーザーが RESTORE ステートメントを実行するアクセス許可をデータベースの作成に必要です。データベースが存在する場合、復元のアクセス許可dbcreatorおよびsysadminのメンバーを固定サーバー ロールとデータベースの所有者 (dbo)。RESTORE ステートメントの詳細については、SQL Server Books Online の「復元」、Transact SQL リファレンス トピックを参照してください。

接続し、データベースをデタッチします。

データベースのデータとトランザクション ログ ファイルをデタッチし、別のサーバーまたは同じサーバーに再アタッチできます。データベースをデタッチするが、SQL Server からデータベースを削除、データベースを構成するデータおよびトランザクション ログ ファイルで、データベースをそのまま残ります。元となるデータベースをデタッチしたサーバーを含め、SQL Server の任意のインスタンスにデータベースをアタッチするのには、これらのデータ ファイルとトランザクション ログ ファイルを使用できます。これにより、デタッチしたときとまったく同じ状態でデータベースを使用にします。詳細については、SQL Server Books Online のアタッチとデタッチ データベース」」トピックを参照してください。


次の使用例は、SQL Server の現在のインスタンスからmydbというデータベースを切り離します。

EXEC sp_detach_db 'mydb'
固定サーバー ロールsysadminのメンバーだけでは、 sp_detach_dbストアド プロシージャを実行できます。Sp_detach_dbストアド プロシージャの詳細については、「sp_detach_db、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピックです。


次の例では、SQL Server の現在のインスタンスには、 mydbという名前のデータベースから 2 つのファイルがアタッチされます。

EXEC sp_attach_db @dbname = N'mydb',    @filename1 = N'C:\MSDE\Backup\mydb.mdf', 
@filename2 = N'C:\MSDE\Backup\mydb.ldf'

大文字の N では、Unicode 文字列定数をプレフィックスとして使用します。"N"プレフィックスは、SQL 92 標準に、各国の言語を表しています。詳細については、マイクロソフト サポート技術情報の次の資料を参照してください。

239530 INF: SQL Server で Unicode 文字列定数には、N プレフィックスが必要とします。
Sysadmin固定サーバー ロールdbcreatorのメンバーだけでは、この手順を実行できます。Sp_attach_dbストアド プロシージャの詳細については、「sp_attach_db、Transact SQL リファレンス」を参照してください。 SQL Server Books Online のトピックです。

Osqlユーティリティの使用に関する次の情報は、Microsoft SQL Server 2000 のすべてのエディションにも適用されます。

関連情報

SQL Server 2000 Books Online の更新されたバージョンをダウンロードするには、次のマイクロソフト Web サイトを参照してください。

SQL Server オンライン ブックの SQL Server 7.0 バージョンをダウンロードするには、次のマイクロソフト Web サイトを参照してください。

MSDE 2000 の詳細については、以下の資料、マイクロソフト サポート技術情報を参照してください。

319930デスクトップ エディションの SQL Server または SQL Server 2005 Express Edition のインスタンスへの接続方法

Transact SQL を使用して Microsoft デスクトップ エンジン データベースをバックアップするには、方法を241397
プロパティ

文書番号:325003 - 最終更新日: 2017/02/01 - リビジョン: 2

フィードバック