如何用SQL2019建立觸發器,如何用SQL2005建立觸發器

2023-02-15 17:20:38 字數 5735 閱讀 1236

1樓:匿名使用者

set ansi_nulls on

set quoted_identifier ongoalter trigger [dbo].[update_grade]

on [dbo].[reader]

for update

as if update(num)

declare @score int

begin

set nocount on;

select @score=num from insertedif @score>=20

print '已達上限!'end

2樓:匿名使用者

建立一個update觸發器:

create trigger trustudenton student

for update --觸發器型別--updateas if update(studentid)begin

update borrowrecord

set br.studentid=i.studentidfrom borrowrecord br , deleted d ,inserted i

where br.studentid=d.studentidend

建立一個delete觸發器

create trigger trdstudenton student

for delete

as delete borrowrecordfrom borrowrecord br , delted dwhere br.studentid=d.studentid

sql server 中如何建立觸發器

3樓:文件類共創空間

建立觸發器的語法:

create trigger trigger_nameon table_name

[with encryption]

for [delete, insert, update]ast-sql語句

gowith encryption表示加密觸發器定義的sql文字delete, insert, update指定觸發器的型別insert觸發器的工作原理:

1.執行insert插入語句,在表中插入資料行;

2.觸發insert觸發器,向系統臨時表inserted表中插入新行的備份(副本)

3.觸發器檢查inserted表中插入的新行資料,確定是否需要回滾或執行其他操作。

4樓:

你可以直接用語句寫呀,如:

create trigger [trigger name] on [dbo].[table name]

for insert, update, deleteas或者你用sql server的企業管理器,選中要建立觸發器的表,點後鍵,然後選擇管理觸發器,這時會彈出一個編輯視窗,然後自己編寫觸發器就ok了。

sql中觸發器建立與呼叫

5樓:北千山

檢視和資料表一樣,都能夠利用datawindow直接呼叫儲存過程需要在程式裡面呼叫觸發,有專門語句,叫什麼sql之類的觸發器是sql根據資料表變化自動觸發的,不需要程式處理你說的使用者指的是登入資料庫的使用者?這個一般大型應用裡面管理員踢人才用到,需要呼叫sql資料庫資訊,寫一個專門的程式進行登入使用者管理,幾句話說不清楚

6樓:折柳成萌

先給你舉個觸發器的例項:

先建立兩個表

create table student( --學生表

studentid int primary key, --學號

....

) create table borrowrecord( --學生借書記錄表

borrowrecord int identity(1,1), --流水號

studentid int , --學號

borrowdate datetime, --借出時間

returndate datetime, --歸還時間

...)

建立觸發器

create trigger trustudent

on student --在student表中建立觸發器

for update --為什麼事件觸發,在這裡就是修改的時候會執行這個觸發器,一旦你修改student表,就會執行

as --事件觸發後所要做的事情

if update(studentid)

begin

update borrowrecord

set studentid=i.studentid

from borrowrecord br , deleted d ,inserted i --deleted和inserted臨時表

where br.studentid=d.studentidend

sql中觸發器怎樣執行的?

7樓:大野瘦子

建立觸發器 是特殊的儲存過程,自動執行,一般不要有返回值。

1、後觸發器 (after,for)先執行對應語句,後執行觸發器中的語句。

2、前觸發器  並沒有真正的執行觸發語句(insert,update,delete),而是執行觸發後的語句。

3、行級觸發器 (for each row) 在sql server 中不存在。

8樓:我愛瓜瓜啊

先給你舉個觸發器的例項:

先建立兩個表

create table student( --學生表

studentid int primary key, --學號

....

) create table borrowrecord( --學生借書記錄表

borrowrecord int identity(1,1), --流水號

studentid int , --學號

borrowdate datetime, --借出時間

returndate datetime, --歸還時間

...) 建立觸發器

create trigger trustudent

on student --在student表中建立觸發器

for update --為什麼事件觸發,在這裡就是修改的時候會執行這個觸發器,一旦你修改student表,就會執行

as --事件觸發後所要做的事情

if update(studentid)

begin

update borrowrecord

set studentid=i.studentid

from borrowrecord br , deleted d ,inserted i --deleted和inserted臨時表

where br.studentid=d.studentidend

9樓:匿名使用者

根據你觸發器建立的定義。

在 insert update delete 資料的時候, 自動觸發執行。

sql裡中儲存過程和觸發器,如何建立? 20

10樓:

觸發器是一種特殊的儲存過程,

2.觸發器是在對錶進行插入、更新或刪除操作時自動執行的儲存過程

3.觸發器通常用於強制業務規則

4.觸發器是一種高階約束,可以定義比用check 約束更為複雜的約束

5.可執行復雜的sql語句(if/while/case)

delete 觸發器

insert 觸發器

update 觸發器

/*----------insert 插入 觸發器------------*/

create trigger tri_insert

on students /*針對某個表,觸發器是建立在表關係上的*/

for insert /*採用的是哪種觸發器*/

asdeclare @stu_id int;

declare @stu_score varchar(200);

select @stu_id=s_id from inserted /*這裡的inserted 是在建立觸發器時候 系統自動建立的記憶體表*/

insert into student_score(s_id,ss_score)values(@stu_id,'100')

go--就是插一條資料進入students中,tri_insert觸發器就會自動在student_score插入相關的學生的一條分數的資料

insert into students(s_name,s_classid) values('黃馳',6)

select * from student_score

11樓:匿名使用者

mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地

12樓:貳兩毛尖

如果是mssql server,在企業管理器裡,右鍵表名,然後自己看

13樓:匿名使用者

儲存過程可以直接用sql語句建立,觸發器可以在表修改中建立

create procedure nameas

14樓:薛實

(1).儲存過程:

create procedure for_select(你想用的觸發器名字)

delare @name char(8) output(用於輸出的),@age int output(用於輸出),@phone_num char(11) (輸入)

asselect @name=name(列名),@age=age(列名) from table_name(表名)

where phone_num(列名)=@phone_num

(2)觸發器

create tigger for_update

on table_name

after update

asif(update(phone_num))

update table_name2

set phone_num=i.phone_num

from deleted d,inserted i

where table_name.phone_num=d.phone_num

end其中:deleted與inserted是sql中預設的臨時表。用來儲存原來的值和插入的值。

本觸發器的作用是 當更新table_name 中的phone_num時table_name1中的phone_num也一起更新!注意觸發器只能用於update.insert.

delete.select中不能用於建立表............

sql觸發器問題,一個SQL觸發器問題

1,這個 沒問題。2,敲完這個 折後我的bb表裡面的所有資料都沒有了,borrower裡面是否有資料。3,之後也新增不了資料這是什麼回事?是以何種方式新增資料,新增不了報錯?提示是什麼 但是這句 我理解為刪除borrwer表中的brno同時也刪除bb中的brno和bno 對嗎?刪除borrwer表中...

SQL2019如何建立樹形的表,SQL2005如何建立樹形的表

建一個表就行了 表裡要有一個主鍵id 然後還要有一個父級id列 哪果父級列為0那麼它就是最外層的節點,如果不是,去找相應的父級。例如id parentid nodename1 0 a 2 0 b 3 1 a1 4 1 a2 5 2 b1 6 2 b2 7 3 a118 3 a129 6 b21 明白...

oracle中用plsql建立觸發器報觸發器無效且未通

一般情況就是觸發器的語法不正確。觸發器的一般語法回如下 create or replace trigger trigger name or on schema.table name schema.view name referencing for each row when condition pl...