用C如何呼叫sql server2019觸發器

2022-03-04 06:46:49 字數 4949 閱讀 1323

1樓:匿名使用者

觸發器是執行sql語句的時候,系統自動執行的,要不怎麼叫觸發器。觸發器是不用人為執行的。

你說的呼叫是呼叫儲存過程或函式吧。

2樓:

觸發器:準確的來說觸發器是你在更新或者操作某個資料時,而執行的一段程式。比如:你寫一段**當刪除每個員工的姓名時,也刪除該員工的所有資訊。這就是叫做觸發器。

所以觸發器是不用呼叫的。

這是我個人的理解,希望對你有幫助!

3樓:

--1、在visual studio 中完成**c#**

--2、修改資料庫的許可權

alter database adventureworks set trustworthy on

--3sp_configure clr_enabled , 1

--4reconfigure

--5create assembly calcsalassemble from 'f:\employeepay\employeepay\bin\debug\employeepay.dll' //你寫的程式的debug 的 xx.

dll地址

with permission_set = unsafe

--6sql 程式

例:--步驟

--1、完成**

/*using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.data.sqltypes;

using system.data.sqlclient;

using microsoft.sqlserver.server;

namespace employeepay

dr.close();

connection.close();

return sr;}}

}*/--2、修改資料庫的許可權

alter database adventureworks set trustworthy on

--3sp_configure clr_enabled , 1

--4reconfigure

--5create assembly calcsalassemble from 'f:\employeepay\employeepay\bin\debug\employeepay.dll'

with permission_set = unsafe

--6create function salarycalculation(@empid as nvarchar(3))

returns nvarchar(10)

as external name calcsalassemble.[employeepay.pay].calcsalary

--7select dbo.salarycalculation('23')

如何在c#中使用帶有 觸發器 的sql語句

4樓:仙戈雅

就跟呼叫普通的t-sql語句沒有區別,因為觸發器的業務邏輯是附加在表物件裡執行的,即在資料庫內部執行的),c#作為上一層介面,無需關心基表的觸發器究竟是如何執行的。真正關心的應該是dba,或是程式設計者。

5樓:匿名使用者

觸發器的定義:

觸發器是一種特殊型別的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。

觸發器存在的意義就在於他可以「自動」的執行,而不需要操作者去關注。

比如有表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語句是一樣的。

如何使用c#**實現資料庫觸發器的功能

6樓:理想很現實

dml觸發器有三類:

1, insert觸發器;

2, update觸發器;

3, delete觸發器;

觸發器的組成部分:

觸發器的宣告,指定觸發器定時,事件,表名以型別

觸發器的執行,pl/sql塊或對過程的呼叫

觸發器的限制條件,通過where子句實現

型別:應用程式觸發器,前臺開發工具提供的;

資料庫觸發器,定義在資料庫內部由某種條件引發;分為:

dml觸發器;

資料庫級觸發器;

替代觸發器;

dml觸發器元件:

1,觸發器定時

2,觸發器事件

3,表名

4, 觸發器型別

5, when子句

6, 觸發器主體

可建立觸發器的物件:資料庫表,資料庫檢視,使用者模式,資料庫例項

建立dml觸發器:

create [or replace] trigger [模式.]觸發器名

before| after insert|delete|(update of 列名)

on 表名

[for each row]

when 條件

pl/sql塊

for each row的意義是:在一次操作表的語句中,每操作成功一行就會觸發一次;不寫的話,表示是表級觸發器,則無論操作多少行,都只觸發一次;

when條件的出現說明了,在dml操作的時候也許一定會觸發觸發器,但是觸發器不一定會做實際的工作,比如when 後的條件不為真的時候,觸發器只是簡單地跳過了pl/sql塊;

insert觸發器的建立:

create or replace trigger tg_insert

before insert on student

begin

dbms_output.put_line('insert trigger is chufa le .....');

end;

執行的效果:

sql> insert into student

2 values(202,'dongqian','f');

insert trigger is chufa le .....

update表級觸發器的例子:

create or replace trigger tg_updatestudent

after update on student

begin

dbms_output.put_line('update trigger is chufale .....');

end;

執行效果:

sql> update student set se='f';

update trigger is chufale .....

已更新8行;

可見,表級觸發器在更新了多行的情況下,只觸發了一次;

在j**a裡怎麼觸發sqlserver2000中的觸發器啊?

7樓:

觸發器是與表及操作相關的。

比如是 a表的insert動作時觸發。

那麼你呼叫insert語句時,觸 發器就動作了。不用寫監聽。

8樓:匿名使用者

觸發器是執行sql語句的時候,系統自動執行的,要不怎麼叫觸發器。觸發器是不用人為執行的。

你說的呼叫是呼叫儲存過程或函式吧。

9樓:匿名使用者

觸發器的觸發行為是與自定義的表及相應操作相關;當有定義表的該操作出現時,觸發器就要執行

c#誰能給我寫個資料庫的觸發器的示例

10樓:匿名使用者

觸發器是資料庫的功能,在資料庫定義了觸發器後,只需要有insert,update或者delete資料,就可以觸發和c#沒什麼關係

--sqlserver觸發器例子-----------create trigger 觸發器名字

on 表名

for insert, update, delete ---可以單獨for insert等

asprint '成功觸發'

我想在sql server 2000中寫個這樣的觸發器,能實現嗎?

11樓:匿名使用者

假設開門表 = t1, 檢視=v1, 歷史表=log很簡單哦可以實現

create trigger oninsertt1 on t1 after insert as

begin

declare @id int;

set @id=(select id from inserted);

insert into log(列名.....) select 列名,........ from v1 where v1.t1id=@idend

12樓:酒後的笑凨

不可以,因為獲得檢視中的這條資料和歷史表是無法並存,並且不能插入。

用c語言,sqlserver資料庫,寫使用者登入系統。最好是詳細

先判斷你要註冊的使用者是不是存在,如果存在就不能註冊,如果不存在則進行寫入動作。下面是我寫的,你可以進行參考。protected void button1 click object sender,eventargs e if txtpass.text txtpass2.text if txtemai...

c語言 怎麼呼叫指標陣列函式,C語言 怎麼呼叫指標陣列函式

1.函式指標的陣列定義方法 返回值型別 指標變數名 number 形參列表 例如 double add double a,double b double sub double a,double b double mul double a,double b double div1 double a,d...

c語言呼叫exe檔案的問題,c語言問題,呼叫exe檔案

有個api函式可以直接呼叫 shellexecute null,null,d test.ext null,null,null 其中第3個引數就是 exe程式的絕對路徑.yourexe.exe d 假設你命令列接受這樣的選項比如 d system yourexe.exe d 被呼叫的程式如果需要有輸入...