2009-09-02 22 views
2

私は以前からBEFOREトリガーを待っていました。しかし、私たちはORACLEで書かれたいくつかのシステムを持っています。潜在的な新しいクライアントが理由を尋ねたとき、社長はSql Serverに(特に)BEFOREトリガーがないためだと言いました。これにSql Server 2008 - BEFOREトリガー?

は、クライアントが「はい、2008年にあなたがトリガする前に書くことができます。」と答えました

は今はない打ち上げイベントではなく、オンラインリスト「新機能」で、これの何も聞いていないしました。私が知る限り、BEFOREトリガーはまだ適切ではありません。私はこれで間違っていますか?

2008年にBEFOREトリガーが実際にどこかに隠されていますか?

答えて

6

あなたのクライアントは間違っています。

チャールズBretanaは、すでに述べたように

:あなたが挿入した後取得またはINSTEAD INSERTトリガーの、ない本格的なは、BEFORE SQL Serverでトリガします。

それは今の事実だ - お奨めはそれと一緒に暮らすとSQL Server 2008 R2のために願っています! :-)

マルク・

+0

それは私が思ったものです。私は待っていて、長いことを見ていたので、これを聞いてかなり驚きました。私は彼らがおそらく...間違っていると思ったが、とにかく私がチェックすると思った。 ありがとう! :) – eidylon

2

SQL Serverの(私は信じているSQLの2K5以降)トリガする前に、方法で、あるトリガ「の代わりに」と呼ばれるものがあります。でも、SQL Server 2008で、何の「挿入する前に、」トリガーはありません:-)

+0

YAHは、INSTEAD ofsが*ソート*のあなたが同じことをやらせるが、あなたは、SQL文が効果を取ることになっていたものは何でもするが、完全にrecodeの持つ羽目になる。これにより、データベースにLOADSコードが追加され、バグの潜在的可能性が大幅に高まります。たとえば、新しいフィールドが追加されたテーブルや削除されたテーブルがある場合、新しいテーブルを処理するトリガーの代わりにテーブルを更新する必要があります(または不足している)フィールド。 BEFOREトリガーの真のパワーは、dbに入る前にデータをスクラブして、フロントエンドコードに負担をかけることなくデータの整合性を高めます。 – eidylon