⑴ sql觸發器無效
「我想在一個表發生變時另外一個表跟著碰困出現同樣的變化」
既然你想實現這信轎個功能,那麼在觸發器里你應該像另外一個表插入數據才對。
而你的觸發器是更新操作,如果ky_totaldata表沒有數笑坦念據的話,肯定不會有什麼變化。
假如兩個表結構相同,那麼用如下觸發器
create trigger [TRI_NEWSDATA]
ON [dbo].[KY_NEWSDATA]
for insert
as
insert into [dbo].[ky_totaldata]
select *
from inserted
向KY_NEWSDATA表插入數據後,就會觸發進ky_totaldata表中。
⑵ sql觸發器不起作用
觸纖乎埋發器能應該正常被觸發. 問題在於你的條件if @amount = null, 這個頃物表達式的結果永遠都是false, 故毀螞你的update語句不會被執行. 要改成if @amount is null.
⑶ SQL觸發器代碼不能執行
你序列號創建了么?
SQL>CREATESEQUENCEtest_sequence2
2incrementby1--每次遞增1
3startwith1--從1開始
4nomaxvalue--沒有最大值
5培森minvalue1--最小值=1
6NOCYCLE;--不循環
Sequencecreated.
SQL>CREATETABLEtest_create_tab2(
2idINT,
3valVARCHAR(10),
4PRIMARYKEY(id)
5);
Tablecreated.
SQL>
2數亂BEFOREINSERTONtest_create_tab2
3FOREACHROW
4BEGIN
5SELECTtest_sequence2.nextvalINTO:new.idFROMal;
6END;
7/
Triggercreated.
SQL>INSERTINTOtest_create_tab2(val)VALUES('NOid'薯中檔);
1rowcreated.
SQL>INSERTINTOtest_create_tab2(id,val)VALUES(1,'idnouse');
1rowcreated.
SQL>SELECT*FROMtest_create_tab2;
IDVAL
------------------------------
1NOid
2idnouse
⑷ SQL2005觸發器不運行
看了一下,可能會報錯的只有這一句
if (select count(*) from 銷售訂單罩鉛表
where 訂單號橘激=(select 訂單號 from inserted))>1
當(select 訂單號 from inserted) 有多個返回值是不能用物伍好 = ,會報錯,你把語句改成
if (select count(*) from 銷售訂單表
where 訂單號 in (select 訂單號 from inserted))>1
試試
⑸ sql server 觸發器無法使用是因為什麼
應該是寫入的數據不符合B表的規則,所以造成寫入錯誤,就回退了。B表錯了,A表就同樣不會寫入成功了。
⑹ 為什麼這么簡單的sql觸發器都不能執行
觸發器 目的往往是為了保證數據的一致性,所以在伺服器端設置觸發器,一旦用戶 修改 刪除,或者添加了某一個 欄位的數據,然後設置好的觸櫻晌發器自動執行另一個 修改 刪除 或者添加操作,以保證數據的關聯性 或者一致性。
你的觸發器內容為散激 一沖頌襪個 簡單的 select 查詢,個人認為好像沒有意義。
另外錯誤提示是 語法問題。你可以再仔細檢查下。
⑺ sql 觸發器不執行:
邏輯問題,begin 和end的位置不對,事務無法正常執行!
⑻ sql觸發器怎麼不起作用,沒有數據信息,代碼如下:
你的select 部分有語法錯誤啊,備缺開始節點=(select 節點名稱 from A008物理節點表 where ID=開始節點ID) 這個地方是不能這樣寫的。如果你是要顯示固定的開始節點,就把「開始節點=」去掉豎滾唯,如果你是想篩選開始節點是(select 節點名稱 from A008物理節余培點表 where ID=開始節點ID) 這個值的,把它寫到where條件中去。