1樓:老秀珍城裳
儲存過程可以直接用sql語句建立,觸發器可以在表修改中建立create
procedure
nameas
2樓:扶倫閎卿
(1).儲存過程:
create
procedure
for_select(你想用的觸發器名字)delare
@name
char(8)
output(用於輸出的),@age
intoutput(用於輸出),@phone_numchar(11)
(輸入)
asselect
@name=name(列名),@age=age(列名)from
table_name(表名)
where
phone_num(列名)=@phone_num(2)觸發器
create
tigger
for_update
ontable_name
after
update
asif(update(phone_num))update
table_name2
setphone_num=i.phone_numfrom
deleted
d,inserted
iwhere
table_name.phone_num=d.phone_numend其中:
deleted與inserted是sql中預設的臨時表。用來儲存原來的值和插入的值。本觸發器的作用是
當更新table_name
中的phone_num時table_name1中的phone_num也一起更新!注意觸發器只能用於update.insert.
delete.select中不能用於建立表............
sql裡中儲存過程和觸發器,如何建立? 20
3樓:
觸發器是一種特殊的儲存過程,
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
4樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
5樓:貳兩毛尖
如果是mssql server,在企業管理器裡,右鍵表名,然後自己看
6樓:匿名使用者
儲存過程可以直接用sql語句建立,觸發器可以在表修改中建立
create procedure nameas
7樓:薛實
(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中儲存過程與觸發器的區別?
8樓:匿名使用者
儲存過程相當於一個函式,需要自己呼叫,觸發器是自動執行不需要呼叫
9樓:貊梓毓博明
我的理解就是儲存過程就是把很多語句放在一起,然後按先後順序執行,這樣可以方便,並且一目瞭然。而觸發器就是指當你要操作一個表或者是其它操作的時候,會是這個觸發器開始執行,它幫助你執行一些輔助的工作,比如更新另一個表資料或者插入新表資料等。應該說這兩個我感覺根本就是不同的
10樓:匿名使用者
儲存過程與觸發器是sql server 中的兩類資料庫物件。它們都是由t-sql語句編寫而成的過程,所不同的是儲存過程是由使用者根據需要呼叫執行的,而觸發器則是由某個動作(如刪除或修改一條記錄)引發執行的。另外,儲存過程可以不依附於一個特定的表。
它們與函式也不同,函式可以直接通過函式名返回數值,其返回值可以直接在表示式中使用,而儲存過程與觸發器則不能直接通過其名稱帶回返回值,也不能直接在表示式中使用!
sql怎麼在儲存過程中建立觸發器
11樓:匿名使用者
--一些基本語法,詳細的請參考聯機幫助
--建立作業
declare @dbname sysname,@jobname sysname,@date int,@time int
exec msdb..sp_add_job @job_name=@jobname,@delete_level=1
--建立作業步驟
declare @sql varchar(800)
select @sql='insert into .....' ,@dbname=db_name()
--建立排程
exec msdb..sp_add_jobschedule @job_name = @jobname,
@name = '時間安排',
@enabled = 1,
@freq_type = 1,
@active_start_date = @date,
@active_start_time = @time
-- 新增目標伺服器
exec msdb.dbo.sp_add_jobserver
@job_name = @jobname ,
@server_name = n'(local)'
goexec msdb..sp_add_jobstep @job_name=@jobname,
@step_name = '更新處理步驟',
@subsystem = 'tsql',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重試次數
@retry_interval = 5 --重試間隔
.......
sql sever可以通過編寫一個儲存過程或者函式來建立觸發器嗎?如果可以的話,該怎樣實現?
關於sql語言儲存過程和觸發器的建立 180
sql儲存過程如何呼叫儲存過程,SQL儲存過程如何呼叫儲存過程?
1 首先先建立一個儲存過程,如圖,儲存過程主要的功能是為表jingyan插入新的資料。2 執行這幾行 看到執行成功,資料庫裡現在已經有儲存過程sp jy。3 先看下jingyan表裡目前的陣列,如圖,只有三行資料。4 在mysql裡,呼叫儲存過程,只需要用call關鍵字,帶上儲存過程的名稱就行了,當...
用SQL語句建立儲存過程,使用SQL語句建立儲存過程如題 謝謝了
create proc edure procedure name number varying default output n with forreplication as begin t sql語句 end 可以參考以上語法!mysql教程4 mysql8運算子 函式 儲存過程及新增資料型別 1...
儲存過程返回值,求大師,SQL 取儲存過程的返回值
不用return 如果是sqlserver呼叫。declare r int exec pro add new 其他引數,re r output select r sql 取儲存過程的返回值 儲存過程應該有返回值的,問題應該出現在你vb6的呼叫語句中 第二個引數是輸出型別的引數,是否有正確設定 你可以...