存儲過程(proc 或 procedure)
存儲過程(Stored Procedure),計算機用語,是一組為了完成特定功能的SQL語句集,是利用SQL Server所提供的Transact-SQL語言所編寫的程序。經編譯后存儲在數據庫中。存儲過程是數據庫中的一個重要對象,用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是由流控制和SQL語句書寫的過程,這個過程經編譯和優化后存儲在數據庫服務器中,存儲過程可由應用程序通過一個調用來執行,而且允許用戶聲明變量 。同時,存儲過程可以接收和輸出參數、返回執行存儲過程的狀態值,也可以嵌套調用
CREATE PROCEDURE [擁有者.]存儲過程名[;程序編號] [(參數#1,…參數#1024)] [WITH {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION} ] [FOR REPLICATION] AS
程序行 GO
例如:
CREATE procedure sp_No1 @a int, @b char(10) as select *from Users where SCode=''+@a+'' GO
搜狗百科:http://baike.sogou.com/v449738.htm?fromTitle=%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B
事物(Database Transaction)
數據庫事務(Database Transaction)是指作為單個邏輯工作單元執行的一系列操作,要么完整地執行,要么完全地不執行。 正常的情況下,這些操作將順利進行,最終交易成功,與交易相關的所有數據庫信息也成功地更新。但是,如果在這一系列過程中任何一個環節出了差錯,數據庫中所有信息都必須保持交易前的狀態不變。
相關屬性:原子性、一致性、隔離性、持久性
SQL事務的寫法例子 BEGIN TRANSACTION DeleteSupv --SQL語句 IF @@error<>0 BEGIN ROLLBACK TRAN DeleteSupv GOTO on_error END --SQL語句 IF @@error<>0 BEGIN ROLLBACK TRAN DeleteSupv GOTO on_error END COMMIT TRAN DeleteSupv RETURN 1 on_error: print 'Error occured'
搜狗百科:http://baike.sogou.com/v298468.htm?fromTitle=%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%8B%E5%8A%A1
觸發器(trigger)
觸發器(trigger)是個特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由個事件來觸發,比如當對一個表進行操作(insert,delete,update)時就會激活它執行。
SQL Server 包括三種常規類型的觸發器:DML 觸發器、DDL 觸發器和登錄觸發器。
DML觸發器:當數據庫中表中的數據發生變化時,包括insert,update,delete任意操作
DDL觸發器:主要用於審核與規范對數據庫中表,觸發器,視圖等結構上的操作。它在數據庫結構發生變化時執行,我們主要用它來記錄數據庫的修改過程,以及限制程序員對數據庫的修改,比如不允許刪除某些指定表等。
登錄觸發器:登錄觸發器將為響應 LOGON 事件而激發存儲過程。
CREATE TRIGGER `<databaseName>`.`<triggerName>` < [ BEFORE|AFTER ] > < [ INSERT|UPDATE|DELETE ] > ON [dbo]<tableName> //dbo代表該表的所有者 FOR EACH ROW BEGIN --do something END|
搜狗百科:http://baike.sogou.com/v449766.htm?fromTitle=%E8%A7%A6%E5%8F%91%E5%99%A8
