我創建了計算機審計應用程序。當我運行我的應用程序時,它會在計算機名稱,osVersion,lastAudit,model,totalMemory,processor,userName等瀏覽器上顯示計算機附件。更新SQL Server中表的屬性時觸發?
我在SQL Server 2008中創建了一個數據庫,其中有一個表Computers
。當一個值被插入到該表中時,我需要更新列中的表值。試圖嘗試這個,我使用觸發器。但是,我不完全瞭解觸發器的工作原理。
有人可以告訴我如何做到這一點。
我的表有這些列:
id, computerName, osVersion, lastAudit, model, totalMemory, processor, userName
我知道在這個代碼一些錯誤或丟失的,但我無法完成這一點。在這方面請幫助我。
CREATE TRIGGER update_trigger
ON computers
AFTER UPDATE
AS
BEGIN
declare @id as int
declare @computerName as varchar(100)
declare @osVersion as varchar(100)
declare @lastAudit as datetime
declare @model as varchar(100)
declare @totalMemory float
declare @processor as varchar(100)
declare @userName as varchar(100)
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
if update(id)
BEGIN
insert into computers values(@id,@computerName,@osVersion,@lastAudit,@model,
@totalMemory,@processor,@userName,'Update')
SET NOCOUNT ON;
END
GO
當您更新「計算機」表中的行時,爲什麼要將另一行插入到同一個表中?重點是什麼?對於審計,您通常會將行*插入到單獨的「審計」表中 - 與您更新數據時不在同一個表中。 –
好吧,首先,我試圖更新行,但它不工作,所以我正在嘗試這個代碼。 –
好的,謝謝你的評論對我有幫助。接下來的一點是,我希望當新的計算機添加時我的表格會自動更新,因此您可以在這方面編輯我的觸發器代碼。 –