0

私の同僚は、ASP.NET Web Formsデータを収集するアプリケーションを作成しています。私はSQL Serverそれのデータベースを管理しています。データベースに基づいて、彼は を使用して Web フォームにオブジェクトを作成しますLinq to SQLdataDodania彼は、オブジェクトの生成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
4

1 に答える 1