重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

参考HPを見たのですが、どうもイマイチよくわからず、ここで質問しました。

ストアドプロシージャ、ジョブなど聴きなれない言葉がありまして、困っています。

どうぞ、ご教授よろしくお願いします。

参考HP
http://www.horikawa.ne.jp/msde/support/msde2000- …

A 回答 (3件)

#1です。


補足の通りです。

【バックアップのストアドサンプル】

SQL Server 2005 Expres
参考URL
http://msdn2.microsoft.com/ja-jp/library/ms16570 …
http://msdn2.microsoft.com/ja-jp/library/ms17020 …
================================================================
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE Procedure [dbo].[DBのバックアップ]
@Path nvarchar(50) = N'C:\DBバックアップ\', -- バックアップ先のフォルダ
@Fname nvarchar(50) = N'ほにゃららDB.Bak' -- バックアップの出力先ファイル名
as

declare @BKF as nvarchar(100)

set @BKF = @Path + @Fname

BACKUP DATABASE ほにゃららDB
TO DISK = @BKF
WITH FORMAT,
NAME = 'Full Backup of ほにゃららDB'

return
================================================================

上記ストアドをDBに登録します。
登録するには上記内容を、メモ帳形式で保存し、拡張子を.SQL
とします。
仮に "C:\BACK.SQL" とします。
SQLCMD で即時実行するコマンドを入力します。
コマンドプロンプトで
============================================================
sqlcmd -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -i "C:\BACK.SQL"
============================================================
で登録されます。
もし、エラーがあれば中断されます。
今回はこれをOS側で制御する簡単な方法を書きます。
まずメモ帳で"C:\backUP.BAT" というファイル名で新規作成します。
================================================================
sqlcmd -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -Q "EXEC DBのバックアップ @PATH = 'C:\バックアップ先フォルダ',@Fname = 'ホニャララ_2006_06_3'"

================================================================
という内容を記入します。
このバッチファイル("C:\backUP.BAT")をうまくゆくかテストします。
コマンドプロンプトで実行してみます。
うまく行くことを確認したら
 Windows XP の スタートップ・アクセサリ・シシテムツールの
タスクマネージャを開きます。
これに先のバッチ"C:\backUP.BAT" を定時に実行するよう登録すれば
指定時刻に実行されます。
結果はDBのLOGとイベントビューワに記録されます。
DBのLOGについてはMSのホームページをご覧ください。

なお定期タスクはあえて登録しなくても上記方法で十分活用できます。変更も簡単なのでこちらをおすすめします。
ストアドの変数「@Pathと@Fname」に渡す内容を変更すればバックアップしたいDBや出力先も変更できます。
以上、参考まで
    • good
    • 0
この回答へのお礼

色々ためしてみて、何とかできました!
大変参考になりました。
ご丁寧な回答ありがとうございましたm(_ _)m

お礼日時:2006/06/12 18:44

#1です。


補足の通りです。

【バックアップのストアドサンプル】

SQL Server 2005 Expres
参考URL
http://msdn2.microsoft.com/ja-jp/library/ms16570 …
http://msdn2.microsoft.com/ja-jp/library/ms17020 …
================================================================
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE Procedure [dbo].[DBのバックアップ]
@Path nvarchar(50) = N'C:\DBバックアップ\', -- バックアップ先のフォルダ
@Fname nvarchar(50) = N'ほにゃららDB.Bak' -- バックアップの出力先ファイル名
as

declare @BKF as nvarchar(100)

set @BKF = @Path + @Fname

BACKUP DATABASE ほにゃららDB
TO DISK = @BKF
WITH FORMAT,
NAME = 'Full Backup of ほにゃららDB'

return
================================================================

上記ストアドをDBに登録します。
登録するには上記内容を、メモ帳形式で保存し、拡張子を.SQL
とします。
仮に "C:\BACK.SQL" とします。
SQLCMD で即時実行するコマンドを入力します。
コマンドプロンプトで
============================================================
sql -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -i "C:\BACK.SQL"
============================================================
で登録されます。
もし、エラーがあれば中断されます。
今回はこれをOS側で制御する簡単な方法を書きます。
まずメモ帳で"C:\backUP.BAT" というファイル名で新規作成します。
================================================================
sql -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -Q "EXEC DBのバックアップ @PATH = 'C:\バックアップ先フォルダ',@Fname = 'ホニャララ_2006_06_3'"

================================================================
という内容を記入します。
このバッチファイル("C:\backUP.BAT")をうまくゆくかテストします。
コマンドプロンプトで実行してみます。
うまく行くことを確認したら
 Windows XP の スタートップ・アクセサリ・シシテムツールの
タスクマネージャを開きます。
これに先のバッチ"C:\backUP.BAT" を定時に実行するよう登録すれば
指定時刻に実行されます。
結果はDBのLOGとイベントビューワに記録されます。
DBのLOGについてはMSのホームページをご覧ください。

なお定期タスクはあえて登録しなくても上記方法で十分活用できます。変更も簡単なのでこちらをおすすめします。
ストアドの変数「@Pathと@Fname」に渡す内容を変更すればバックアップしたいDBや出力先も変更できます。
以上、参考まで
    • good
    • 0

まず、あなたがどの程度、知識を持っているかわからないので


何を説明したらよいのかわかりません。
もう少し、具体的なところまでわかるまで勉強することが必要です。
>>ストアドプロシージャ、ジョブなど聴きなれない言葉がありまして、困っています。
MSDE は何のためどのような目的で使っているのかOSのバージョンや
EXCELからなのかACCESS 2003 からなのか・・・

まずは ACEESS 2003 の入門本やサイトを見ることをお勧めします。
MSDE はコマンドツール OSQL を操作することとなりますが
当然、SQLやストアドのほかビューといった知識が必要です。
SQLの命令事態は簡単なメモ帳(Notepad)などで書くことができます。

即時、実行する場合はOSQLのコマンドで実行できますが定期的に
まとまった処理を実行させたい場合はバッチ処理として
SQLの命令をプログラミングする必要があります。
これがストアドプロシージャです。
書き方も当然知っておく必要があります。
OSQLのコマンドの命令も書き方があります。

OSQLにバッチ処理として実行する場合はメモ帳などで作成した
別ファイルのSQL文(これにバックアップのSQLを記載)
をWINDOWS-XP のタスクスケジューラで定時刻に実行する方法と
MSDE内部の定期タスクを使ってストアドを実行する方法と二つの方法が考えられます。

MSDEはバージョンがあり、現在は
 SQL server 2005 Express EDition になっています。
私自身あまり詳しくはないので省略します。

この回答への補足

ご丁寧なご回答ありがとうございます。

OSQLやSQL文は大丈夫なのですが、
スケジュールするやり方がわかりません。

上のご説明ですと、

ストアドプロシージャ(処理させたいSQL文)を作成

MSDE内部の定期タスクを設定し、ストアドを実行させる

の流れでよろしいのでしょうか?

補足日時:2006/06/07 10:25
    • good
    • 0

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

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