2016-09-01 7 views
0

SQLの自動化プロシージャとは何ですか?私はインタビューでそれらについて尋ねられました、そして、私はそれらに精通していません。彼らはトリガーに似ていますか?マイクロソフトから正式 https://www.simple-talk.com/sql/database-administration/setting-up-your-sql-server-agent-correctly/プロシージャを自動化するSQL

+2

ができますされますでしょうプロシージャを実行したジョブ – Lamak

+1

特定のRDBMS? – Barranka

+0

正確に何が問題だったのですか? – Hogan

答えて

0

あなたは一般的な意味で自動化された手順の話なら、あなたが話していますユーザー操作なしで実行されるタスクのリスト。データベースの文脈では、自動化されたプロシージャーは、自動的に実行される命令のリストです。今

、(私は、MySQLで動作するので、私はその命名法を使用します)のは、具体的に聞かせて:

ストアドプロシージャは、1回の呼び出しでの単位として実行される命令のリストです。例は次のようになります。

delimiter $$ 
create procedure HelloWorld() 
begin 
    select 'Hello world'; 
end $$ 
delimiter ; 

上記の手順は、単一の命令で呼び出すことができます。

call HelloWorld(); 
+-------------+ 
| Hello World | 
+-------------+ 
| Hello World | 
+-------------+ 

これは非常に簡単ですが、あなたは、ストアドプロシージャを持つもののすべての種類を行うことができます。例えば:あなたがコントロールフロー計算書を持つことができます

delimiter $$ 
create procedure CloseTheDay(d date) 
begin 
    declare debits, credits decimal(18,6); 
    select sum(debit), sum(credit) 
    into debits, credits 
    from tranasctions as t 
    where t.date < date_add(d, interval +1 day); 

    select 'Total', debits, credits; 
end $$ 
delimiter ; 

、あなたはカーソルを持つデータをhanldeことができ、あなたは、データを挿入または削除することができます...あなたは、ストアドプロシージャとほとんど何もすることができます。その意味では、これは自動化された手順です。

あなたは

  • データを挿入または削除するときに、ユーザーがさえプロシージャを呼び出すために必要なされていない要件を追加したい場合は、あなたが

    • トリガーから呼び出すことができ、それは、最大発射あなたはその日時に設定することができ、イベントスケジューラは、手順は

    ・ホープと呼ばれ、これは、私は、彼らがスケジューリング話していたことを前提としています

  • 関連する問題