當前位置:首頁 » 數據倉庫 » 觸發器建造資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

觸發器建造資料庫

發布時間: 2022-05-03 10:41:23

① 如何創建資料庫觸發器

http://hi..com/史上最強的豆花/blog/item/4e203b002ed85709738b65eb.html
不知道是不是你要的

② Access資料庫觸發器是什麼東西怎麼創建及使用

在Access 的幫助里可以查詢到:觸發器只支持Adp項目,
Mdb資料庫可能不行,

關於觸發器 (ADP)
全部顯示
全部隱藏
注釋 本主題中的信息僅適用於 Microsoft Access 項目 (.adp)。

觸發器的定義

觸發器是一種特殊類型的存儲過程,它在特定的表中使用數據修改操作修改數據時才起作用,這些修改操作有:UPDATE、INSERT、或 DELETE。觸發器可以查詢其他表而且可以包含復雜的 sql 語句。這對於實施復雜的商業規則或要求尤其有用。例如,可依據顧客帳戶的狀態來控制是否允許插入訂單。

觸發器對於實施參照完整性也是有用的,參照完整性可使得在表中添加、更新或者刪除行時保持表之間已定義的關系。然而,實施參照完整性的最佳方法是在相關表中定義主鍵和外鍵約束。如果使用資料庫圖表,就可以通過創建表之間的關系來自動創建一個外鍵約束。

使用觸發器的優勢

觸發器在下述幾個方面很有用:

觸發器是自動的:在對表中的數據修改後(例如手動輸入數據或應用程序操作)立即激活觸發器,例如手動輸入數據或應用程序操作。
觸發器能夠通過資料庫中相關聯的表實現級連修改。例如,可以對 titles 表的 title_id 列編寫刪除觸發器,以刪除其他表中的匹配行。觸發器將 title_id 列用作唯一鍵,以定位 titleauthor、sales 和 roysched 表中的匹配行。
觸發器能夠實施比使用檢查約束所定義限制更為復雜的限制。與檢查約束不同,觸發器可以引用其他表中的列。例如,觸發器可以回滾試圖對價格低於 $10 的書籍(保存在 titles 表中)應用折扣(保存在 discounts 表中)的更新。

③ 資料庫觸發器怎麼創建

是資料庫用戶。
表示把觸發器basarea_update創建在citymanager用戶下。

④ 如何創建資料庫SQL的觸發器問題!

代碼如下:

--會員表
if object_id('userinfo','u') is
not null
drop table userinfo
go
create table userinfo(userid int
primary key,user_tegral int,level int)
insert into userinfo select 1,0,0

go
--會員等級表
if object_id('userlevel','u') is not null
drop table
userlevel
go
--插入測試數據
create table userlevel(level int primary
key,mlevel_point decimal(10,2))
insert into userlevel select 0,0
insert
into userlevel select 1,100
insert into userlevel select 2,200
insert
into userlevel select 3,300
go
--觸發器
create trigger TR_userInfor
on userinfo for update
as

begin
update a
set a.level=b.level
from userinfo a,userlevel
b
where a.userid in(Select userid from inserted) and
a.user_tegral>=b.mlevel_point and
a.user_tegral<(Select
min(mlevel_point)
from userlevel where mlevel_point>b.mlevel_point)

end
--測試
update userinfo
set user_tegral=100
where
userid=1
select * from userinfo
--另外一個觸發器
set ANSI_NULLS
ON
set QUOTED_IDENTIFIER ON
go
ALTER TRIGGER [AlterName]
ON
[dbo].[FS_User]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
UPDATE
dbo.FS_User SET uname=(SELECT uname FROM Inserted)+'@ml'
WHERE id IN (SELECT
id FROM inserted)
END

⑤ 資料庫-創建觸發器

create table s(sid char(10),sn char(10),sa int)
go --創建s表
create table sc(sid char(10),cid char(10),gr numeric(10,2))
go --創建sc表
create table c(cid char(10),cn char(10),cr numeric(4,2))
go --創建c表
insert into c values('c01','ds',4.0) ;
insert into c values('c02','dbs',3.0);
go --初始化c
create trigger s_sc on s after insert
as
insert into sc
select ins.sid,c.cid,round(100*rand(),0)
from c,inserted ins
go --創建觸發器,這里有個小問題成績隨機數每一次觸發都是一樣的,如果需要不一樣可以修改為游標方式

create trigger s_sc2 on s after insert
as
declare @cid char(10)
begin
DECLARE c_cur CURSOR FOR select cid from c
OPEN c_cur
FETCH NEXT FROM c_cur into @cid
WHILE @@FETCH_STATUS = 0
begin
insert into sc
select sid,@cid, round(100*rand(),0)
from inserted
FETCH NEXT FROM c_cur into @cid
end
CLOSE c_cur
deallocate c_cur
end
go --這個觸發器採用游標處理,隨機數都不一樣,完全滿足要求,但稍微復雜

⑥ 資料庫 創建觸發器觸發器

疑問1:什麼資料庫?
疑問2:如果有兩個以上部門的項目數都是最少,分給哪個?
資料庫不止一種,使用的SQL語法雖然大體相同,但還是各有差異,不說哪個資料庫,沒法寫出確定能在你的庫上正常運行的程序.當然,如果你只是要個思路或者pseudo code,那另當別論.

⑦ 在資料庫里怎麼使用觸發器

觸發器是一類特殊的存儲過程,開發人員也可以定義、編寫符合業務需求的觸發器來維護數據的完整性。觸發器的控制流程及控制語句與存儲過程相同,但觸發器與存儲過程還是有相當大的差別,觸發器的定義格式及開啟方式與存儲過程不同,作為數據管理員或編程人員,熟練掌握觸發器的用法對維護、操作資料庫非常重要。基本語法1.創建觸發器語法格式創建語法:CREATETRIGGER+觸發器名稱+觸發時間點+觸發事件+ON+表名+FOREACHROWBEGIN…END其中,觸發時間點:BEFORE或AFTER,指明是在觸發事件之前還是之後執行。

觸發事件:INSERT、UPDATE、DELETE事件。例如,以下語句創建一個名字叫upd_check的觸發器,其在對account表作更新(UPDATE)操作之前(BEFORE)自動觸發。

CREATETRIGGERupd_…END2.刪除觸發器語法格式DROPTRIGGER+觸發器名稱3.觸發器案例用tab.sql腳本創建表環境,然後用下面語句創建觸發器。當往tab1表添加記錄後將觸發此觸發器,將此新記錄同時插入tab2表中。

DELIMITER//DROPTRIGGERIFEXISTSt_afterinsert_on_tab1;CREATETRIGGERt_afterinsert_on_(tab2_id)values(new.tab1_id);END;//DELIMITER;當用下面語句往tab1表插入記錄時,tab2表中同時也添加了同樣的記錄,如圖tab1數據表

tab1數據表

tab2數據表

INSERTINTOtab1(tab1_id)values(񟍱')

tab.sql

⑧ 關於資料庫建立觸發器的問題。

問題需要觸發器
只要對兩張建立外鍵關聯了用foreign
key
ON
DELETE
CASCADE和ON
UPDATE
CASCADE

⑨ 資料庫觸發器有什麼作用

觸發器的作用:

自動計算數據值,如果數據的值達到了一定的要求,則進行特定的處理。

同步實時地復製表中的數據。

實現復雜的非標準的資料庫相關完整性規則。

可在寫入數據表前,強制檢驗或轉換數據。

觸發器發生錯誤時,異動的結果會被撤銷。

部分資料庫管理系統可以針對數據定義語言(DDL)使用觸發器,稱為DDL觸發器。

可依照特定的情況,替換異動的指令 (INSTEAD OF)。


(9)觸發器建造資料庫擴展閱讀:

分類

SQL Server 包括三種常規類型的觸發器:DML 觸發器、DDL 觸發器和登錄觸發器。

DML觸發器

當資料庫中表中的數據發生變化時,包括insert,update,delete任意操作,如果我們對該表寫了對應的DML觸發器,那麼該觸發器自動執行。

DML觸發器的主要作用在於強制執行業 務規則,以及擴展Sql Server約束,默認值等。因為我們知道約束只能約束同一個表中的數據,而觸發器中則可以執行任意Sql命令。

DDL觸發器

它是Sql Server2005新增的觸發器,主要用於審核與規范對資料庫中表,觸發器,視圖等結構上的操作。比如在修改表,修改列,新增表,新增列等。

它在資料庫結構發生變化時執行,我們主要用它來記錄資料庫的修改過程,以及限製程序員對資料庫的修改,比如不允許刪除某些指定表等。

登錄觸發器

登錄觸發器將為響應 LOGIN 事件而激發存儲過程。與 SQL Server 實例建立用戶會話時將引發此事件。登錄觸發器將在登錄的身份驗證階段完成之後且用戶會話實際建立之前激發。

因此,來自觸發器內部且通常將到達用戶的所有消息(例如錯誤消息和來自 PRINT 語句的消息)會傳送到 SQL Server 錯誤日誌。如果身份驗證失敗,將不激發登錄觸發器。

參考資料來源:網路-觸發器

⑩ mysql資料庫 建立觸發器

貌似你插入的時候就寫錯了吧
inset into test values (1,2),(5,1),(3,2);少了一個r
正確寫法
insert into test values (1,2),(5,1),(3,2)

至於下面錯誤
我都不明白你要對每一次插入數據作何處理
沒插入一條記錄,然後就查詢一次,這應該邏輯上不合理啊
況且查詢不應該作為操作結果返回啊。

給你一個我寫的比較經典的觸發器
--2.刪除好友分組(before,將該分組相片,隸屬與的分組改為默認分組)
create trigger T_friend
on table friend
replace delete //之前操作,用下面的操作來替換原本的操作
as
declare @friend_grop_id int
declare @users_id int
select @friend_grop_id=(select friend_grop_id from deleted)
select @users_id=(select users_id from deleted)

if( (select min(friend_grop_id) from friendGrop where users_id=@users_id )=@friend_grop_id)
begin
return -1
end

else
begin

update friend
set friend_in=(select min(friend_grop_id) from friendGrop where users_id=@users_id )
where
(
select min(friend_grop_id)
from friendGrop
where ( select friend_in from friend where friend_grop_id=@friend_grop_id)
)

delete table friendGrop where friend_grop_id=@friend_grop_id
end

觸發器的意義與用處主要是激發某些操作,讓他們同時發生
例如:假如有一張表,其中個數據列是生日,還有一列是出生年月。
當對生日改變時,觸發對觸發年月夜做相應改變,
嗯,這個例子舉得有點水,數據冗餘了……