magic tables
SQLサーバーで非公式に呼び出されたものを探していると思います。
テーブル " INSERTED
" と " DELETED
" は SQL Server のマジック テーブルと呼ばれます。これらのテーブルはデータベースに表示されません。TRIGGER
しかし、" "からこれらのテーブルにアクセスできます。
レコードをテーブルに挿入すると、マジック テーブル " INSERTED
" が作成されます。そのテーブルでは、現在挿入されている行が使用可能になります。このレコードは " TRIGGER
" でアクセスできます。
トリガーが作成されたテーブルのレコードを更新すると、マジック テーブル " INSERTED
" と " DELETED
" の両方が作成され、更新されたレコードの古いデータは "DELETED" テーブルで利用可能になり、新しいデータはで利用可能になります。 「INSERTED」テーブル、トリガー内でアクセス中。
テーブルからレコードを削除すると、マジック テーブル " DELETED
" が作成されます。そのテーブルでは、現在削除されている行が利用可能になります。このレコードは " TRIGGER
" でアクセスできます。
例:
次のコードは、マジック テーブル " INSERTED
"を説明しています。
CREATE TRIGGER LogMessage
ON EMP
FOR INSERT
AS
DECLARE @EMPNAME varchar(50)
SELECT @EMPNAME= (SELECT EMPNAME FROM INSERTED)
INSERT INTO LOGTABLE(UserId,Message) values (@EMPNAME,'Record Added')
GO
次のコードはマジックテーブル " DELETED
"を説明します
CREATE TRIGGER LogMessage
ON EMP
FOR DELETE
AS
DECLARE @EMPNAME varchar(50)
SELECT @EMPNAME= (SELECT EMPNAME FROM DELETED)
INSERT INTO LOGTABLE(UserId,Message) values (@EMPNAME,'Record Removed')
GO
出典(これらの記事と著者のすべての功績):
http://www.codeproject.com/Questions/285423/what-is-magic-table-different-types-of-magic-table
http://www.dotnetspider.com/resources/29332-Magic-tables-SQL -Server.aspx
. .
あるいは
、試すことができます:
変更追跡関数を使用して変更を取得する、組み込み関数を使用して変更を追跡する方法を説明する MSDN リンク。
CHANGETABLE(CHANGES …)
関数
この行セット関数は、変更情報のクエリに使用されます。この関数は、内部の変更追跡テーブルに格納されているデータをクエリします。この関数は、変更された行の主キーと、操作、更新された列、行のバージョンなどの他の変更情報を含む結果セットを返します。
CHANGE_TRACKING_CURRENT_VERSION()
関数
次回の変更のクエリ時に使用される現在のバージョンを取得するために使用されます。このバージョンは、最後にコミットされたトランザクションのバージョンを表します。
CHANGE_TRACKING_MIN_VALID_VERSION()
関数
クライアントが持つことができる最小の有効なバージョンを取得し、CHANGETABLE() から有効な結果を取得するために使用されます。クライアントは、この関数によって返される値に対して最後の同期バージョンをチェックする必要があります。最後の同期バージョンがこの関数によって返されたバージョンよりも小さい場合、クライアントは CHANGETABLE() から有効な結果を取得できず、再初期化する必要があります。
http://technet.microsoft.com/en-us/library/cc280358%28v=sql.105%29.aspxで構文と使用法を参照してください。
それが役に立てば幸い。