0
我的同事正在使ASP.NET Web Forms
應用程序收集數據。我正在管理SQL Server
數據庫。基於數據庫,他使用Linq to SQL
使對象成爲Web窗體。他希望我在Osoby做記錄,以dataDodania
作爲對象的生成日期,dataModyfikacji
與上次更新的日期相同。在PL/SQL方面有經驗,我爲此做了簡單的觸發器。問題是,當我在SQL Server Management Studio 2008
中很好地運行SQL語句時觸發器有效,但在應用程序中使用時 - 它們被省略,不需要進行更改。下面是觸發的SQL代碼:SQL Server觸發器無法與ASP.NET上的Linq to 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
UPDATE ...
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
對於現在我對'dataDodania'使用'default(GETDATE())'約束。仍然使用'UPDATE'觸發器,但不知道該如何改變它... – wyrdhamster