私の同僚は、ASP.NET Web Forms
データを収集するアプリケーションを作成しています。私はSQL Server
それのデータベースを管理しています。データベースに基づいて、彼は を使用して Web フォームにオブジェクトを作成しますLinq to SQL
。dataDodania
彼は、オブジェクトの生成dataModyfikacji
日と最終更新日で変更するために、Osoby でレコードを作成するように私に求めました。PL/SQL の経験があり、このための簡単なトリガーを作成しました。問題は、SQL ステートメントをSQL Server Management Studio 2008
適切に実行するとトリガーが機能することですが、アプリケーションで使用するとトリガーが省略され、変更が不要になります。トリガーの SQL コードは次のとおりです。
CREATE TRIGGER [dbo].[DodanieOsoby]
ON [dbo].[Osoby]
INSTEAD OF INSERT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT INTO Osoby(dataDodania, dataModyfikacji, loginId, rola, imie, imieDrugie, nazwisko, plec, wiek,pESEL,wyksztalcenie,opieka,ulica, nrDom, nrLokal, miejscowosc, obszar, kodPoczty, telefonKontakt, telefonStacjo, email, zatrudnienie, stanowisko, przedsiebiorstwo)
SELECT GETDATE(), GETDATE(), loginId, rola, imie, imieDrugie, nazwisko, plec, wiek, pESEL, wyksztalcenie,opieka,ulica, nrDom, nrLokal, miejscowosc, obszar, kodPoczty, telefonKontakt, telefonStacjo, email, zatrudnienie, stanowisko, przedsiebiorstwo
FROM inserted
END
そして、の更新のためにOsoby
...
CREATE TRIGGER [dbo].[AktualizacjaOsoby]
ON [dbo].[Osoby]
AFTER UPDATE
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
UPDATE Osoby
SET dataModyfikacji = GETDATE()
WHERE id in
(SELECT DISTINCT id from Inserted)
END