1樓:
觸發器只有三種型別
insert觸發器、update觸發器、delete觸發器
沒聽過create觸發器
2樓:匿名使用者
個儲存過程 用來建表,是個帶參的儲存過程,建表時,你再傳參進去,在sql中用while 迴圈從中讀取再建列
如何在c#中使用帶有 觸發器 的sql語句
3樓:仙戈雅
就跟呼叫普通的t-sql語句沒有區別,因為觸發器的業務邏輯是附加在表物件裡執行的,即在資料庫內部執行的),c#作為上一層介面,無需關心基表的觸發器究竟是如何執行的。真正關心的應該是dba,或是程式設計者。
4樓:匿名使用者
觸發器的定義:
觸發器是一種特殊型別的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。
觸發器存在的意義就在於他可以「自動」的執行,而不需要操作者去關注。
比如有表a和表b , 我們希望a中新增、刪除、修改某一行的時候,表b中對應的行跟著a一起變, 這時候就會用到觸發器。
但是觸發器一旦寫好之後,就會儲存在sqlserver上, 每次我們去操作表a, 觸發器自己就會工作(去更新表b)。不需要任何其他的操作。
所以,你把觸發器寫好之後,只需要關注自己的sql語句就可以了,不用去呼叫它,
需要我們主動呼叫的是儲存過程,相當於sql server中的函式,ado.net提供了介面,
(如有一個trans 名字是@mytran)
呼叫的時候
sqlcommand cmd = new sqlcommand(sql, conn);
//把command執行型別改為儲存過程方式,預設為text。
cmd.commandtype = commandtype.storedprocedure;
然後cmd.excutenoquery 或者excutesclar 等等操作 ,和普通sql語句是一樣的。
sql裡中儲存過程和觸發器,如何建立? 20
5樓:
觸發器是一種特殊的儲存過程,
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
6樓:匿名使用者
mysql教程4 mysql8運算子、函式、儲存過程及新增資料型別 17.之建立帶有in和out引數的儲存過程 學習猿地
7樓:貳兩毛尖
如果是mssql server,在企業管理器裡,右鍵表名,然後自己看
8樓:匿名使用者
儲存過程可以直接用sql語句建立,觸發器可以在表修改中建立
create procedure nameas
9樓:薛實
(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怎麼在儲存過程中建立觸發器
10樓:匿名使用者
--一些基本語法,詳細的請參考聯機幫助
--建立作業
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語言儲存過程和觸發器的建立 180
求高手幫忙sql寫法 樹節點放表中,怎麼用一條語句查詢節點及對應的所有父節點資訊
建議使用遞迴,oracl語法示例如下 create table tbl test id number,主鍵 name varchar2 100 byte pid number default 0 父節點主鍵 插入測試資料 insert into tbl test id,name,pid values...
C中怎麼實現表的增刪改查,c 中怎麼實現表的增刪改查?
我做了一個例項,希望可以幫助你,記得采納哦。我就截圖你看吧 新增 if messagebox.show 請你核對資料 確認 messagebotuton.okcancel,messageboxicon.asterisk dialogresult.cancel return else string s...
在c語言陣列中怎麼用,C語言陣列怎麼輸出全部?
真是沒轍.實在就多分配點空間.連結串列是動態的,如果用c 把動態分配放到類裡面,就給你一個介面,你是不是也認為那是動態的呢?c與vb不能比.vb有幾個是弄記憶體的?基本上是對的,scanf 裡的引數就是變數的地址陣列名你可以理解為這個陣列的起始地址 第一個元素的地址 比如你這裡的a,它就相當於是 a...