2011-02-24 2 views
3

こんにちは私はMS SQL Management Studio express 2005を使用しており、毎日アクティブにするストアドプロシージャが必要です。sql severエージェントを使用せずにストアドプロシージャを自動的に実行できますか?

しかし、私はSQLエージェントを持っていません。

Managemnetスタジオは毎日開かれないため、スタートアップスクリプトを使用することはできません。

誰もがエージェントなしでこれを行う方法を知っていますか?

ありがとうございます。

答えて

3

あなたが使用できるsqlcmdの

http://msdn.microsoft.com/en-us/library/ms162773.aspx

その後、バッチファイルとWindowsスケジューラ

sqlcmd -E -S localhost -q "select count(1) from databasename.dbo.tablename" 

以下を経由して、スケジュールこれはローカルのSQLに接続することを持っていますデータベース内のテーブルに対して行数を実行します。

+0

ありがとう、私はどのようにスクリプトをオフにしますか?ありがとうございます。 – Leigh

+0

sqlcmd -E -S localhost -q "count(1)from databasename.dbo.tablename" -Eは信頼できる接続を意味します(特定のユーザー名を与えるには-Uと-Pを使用する必要があります)とパスワード)-Sはサーバを与え、-qはクエリです....スイッチのケースが重要であることに注意してください – AgentDBA

+0

ありがとうございます。しかし、私はそれらを持っていて、彼らは接続できないエラーがあり、ありがとう – Leigh

1

データベース呼び出しを行うスクリプトを作成し、スケジュールされたタスクを使用してスクリプトを実行します。

1

Windowsスケジュールタスクを作成して、コマンドラインクライアントosqlを実行することができます。

1

それはかなりありませんが、あなたがマスターにストアドプロシージャを作成することができます

use master 
go 
CREATE PROCEDURE DoStuffDaily 
AS 
    WHILE 1=1 
    BEGIN 
     WAITFOR TIME '00:05' --5 past midnight? 
     EXEC <yourdb>.<schema>.<proc> 
    END 
go 

をそれからちょうどsp_procoptionを使用して、起動手順として、このストアドプロシージャをマークし、SQL Serverを再起動します。

+0

これはstatupプロシージャをマークすると言いますが、これはSQLが起動されるたびに実行されるか、thiosが常に実行されることを意味しますか?感謝 – Leigh

+0

SQL Serverが起動するたびに実行されますが、この特定のストアドプロシージャは決して終了しません。毎日'00:05 'を待ってから、毎日実行したいストアドプロシージャを実行します。ストアドプロシージャが非常に速く実行されている場合、 'EXIT'の後に2回目の' WAITFOR TIME'を追加して、同じ日に2回実行されないようにすることができます。 'WAITFOR TIME '00:06''は、 。 –