⑴ sql Server 2008 的存儲過程是否會觸發觸發器
只要是對表進行了操作,都肆廳逗會觸發觸發器裂賣的。應該是你觸發器寫錯了。伏唯好好檢查一下自己的delete觸發器。
⑵ sql server 2008的觸發器:以下是一個觸發器,請問以下代碼中的if Update(StudentID)表示什麼意思
UPDATE
返回一個布爾值,指示是否對帆碼表或視圖的指定列進行了 INSERT 或 UPDATE 嘗試。可以在 Transact-SQL INSERT 或 UPDATE 觸發器主體中的任意位置使用 UPDATE(),以測試觸發器是否應執行某些操作。
對於你的觸發器.
如坦轎灶果
UPDATE Student SET StudentID = ... WHERE ...
那麼, 這個時候 Update (StudentID) 返回 true
如果
UPDATE Student SET 其他欄位 = ... WHERE ...
那麼, 這個時候 Update (StudentID) 返回 flase
你這個觸發器的邏輯, 基本上就是, 如果更新了 學生表的 學號。
那麼 就要讓扮同步更新 成績表中的學號
⑶ sql server2008中的觸發器有3種類型,分別為
(1)DML觸發器:是指觸發器在資料庫中發生數據操作語言(DML)事件時將啟用。DML事件即指在表或視圖中修改數據的insert、update、delete語句也。
(2)DDL觸發器:是指當伺服器或資料庫中發生數據定義語言(DDL)事件時將啟用。DDL事件即指在表或索引中的create、alter、drop語句也。
(3)登陸觸發器:是指當用戶登錄SQL SERVER實例建立會話時觸發。
⑷ SQL server2008 中的觸發器怎麼定義,以及應用
create triger tr_類型_觸發器名字 on 表名
觸發類型:after | instead of
操作察扒類型:insert | delete | update
as
begin
代碼
end
插入數據同時獲得自動增長的ID
insert into USERS output inserted.* values('敗姿昌111','111');
刪除數據的同時 插入數冊滾據
select * from USERS
go
create trigger test on USERS
after
delete
as
insert into USERS (Name,Sex)
select Name,Sex from deleted
go
⑸ SQL Server 2008 同一表下同一事件有兩個觸發器,其中一個對另一個產生影響導致數據無法刪除
你把這兩個觸發蔽哪如器寫在一個觸發器里宏啟面吧
alter trigger new_delete
on H_K_B
for delete
as
insert into tbl_new
select deleted.id,deleted.x,deleted.k_id from deleted left join D on D.x=deleted.x and D.k_id=deleted.k_id where D.sf=1
declare @x varchar(20),@id varchar(20)
select @x = x, @id = id from deleted
declare @istates varchar(10)
select @istates = istates from A where x = @x
if @istates = 2 and not exists(select 1 from B where x=@x istates<緩鋒3)
begin
return
end
else
begin
delete c from test c inner join deleted b on 1=1 and a.id=b.id
end
⑹ sql server 2008支持哪兩種類型的觸發器
DML觸發器,具體是某個表的數據進行了新增修改刪除可以定義相關觸發器來控制相關行為
DDL觸念老姿發器,伺服器級別的觸發器,可以在伺服器仔絕的相關行為發含脊生後,比如有用戶登錄,新增了表之類的動作做捕捉處理
⑺ SQL SERVER 2008 觸發器中怎麼將參數傳遞給存儲過程中的輸入參數@sno
你可以在觸發器上調用存儲過程,
觸發器中有兩個臨時表inserted 和deleted ,這兩個表的表結構和創建觸發器的表是一樣的,
inserted表存的是當前插入或更新後的值,
deleted表存的是當前刪除或修改前的值.
你可以利用以上兩個臨時表的值來獲得你要的參數值,然後調用時傳入存儲過程
另外你也可以直接在觸發器中操作,不用存儲過程。
⑻ sql server 2008 觸發器放在哪
放在需指慶要觸發條件的表下面,例如下面的on後面跟山旦的[dbo].[A01]就是給唯唯握哪個表觸發
ALTER TRIGGER [dbo].[A01_UPDATE_A815]
ON [dbo].[A01]
AFTER UPDATE
AS
BEGIN
SELECT A0188 INTO #A0188 FROM INSERTED
IF UPDATE ("A0191") OR UPDATE ("EXT072")
⑼ sql server 2008觸發器的創建
create trigger trg_1
on 同學信息表
for insert,update
as
if update(聯系電話)
update 同學信息表 set 聯系電話=
(left(inserted.聯系電話,3)+'-'+substring(inserted.聯系電話,4,4)+'-'+right(inserted.聯系電話,4))
from inserted where inserted.學號=同學信息表.學號 and inserted.聯系電話 !=null
⑽ 請問SQL server2008r2觸發器怎麼寫看了半天沒個例子,不容易明白!
你這個寫法是oracle的。sqlserver沒有for each row也沒有referencing。
createtrigger月工資變動
on考勤
afterupdate
begin
declare@一月份缺勤扣薪亮伍橋_oldnumeric(10,4)
declare@一月份缺勤扣薪_newnumeric(10,4)
declare@員工編號int
ifupdate(一月份缺勤扣薪)
begin
select@一月份缺勤扣薪_old=一月份缺勤扣薪fromdeleted
select@一月份缺勤扣薪_new=一月份缺勤扣薪,@員工編號=員工編號frominserted
if(@一月份缺勤扣薪_old!=@一月份缺勤扣薪_new)
update員工月工資set一月份工資=一月份工資-b.一月份扣薪+c.一月份扣薪
from員工月工資a,insertedb,deleted
wherea.員工編號=b.員工編號anda.員橘皮工編敬猛號=c.員工編號
end