怎麼用C在SQL中建表,還有怎麼把SQL的建表語句寫成儲存過程,怎麼寫建立表的觸發器

2022-03-05 21:06:41 字數 3826 閱讀 9918

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...