程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQLServer存儲過程包含很多知識

SQLServer存儲過程包含很多知識

編輯:關於SqlServer

sqlser存儲過程,今天早上因為項目需要,因為太多太多的這樣的程序,所以不可能在程序裡實現,顯得很繁瑣,所以我寫了一個SQLServer的存儲過程,找了半天,網上都是抄來抄去的東西沒點意義,還是自己想自己寫,寫下了一個存儲過程,很有用的。

CREATE PROCEDURE insertAdmin(@adminName varchar(100),
@adminPassWord varchar(100),@realName varchar(50),
@adminTypeId varchar(50),@departmentId varchar(50)
,@positionId varchar
(100))  AS

--存儲過程的基礎我這裡就不說了,直接說,上面是傳參,與自定義函數是一樣的。--
declare @sql nvarchar(100)
declare @num int
declare @adminType varchar(50)
declare @department varchar(50)
declare @positions varchar(50)

--declare是定義變量--

begin tran 

--執行開始,先插入數據--
 insert into Admin(adminName,adminPassWord,realName,adminTypeId,positionId,departmentId)
 values(@adminName,@adminPassWord,@realName,@adminTypeId,@positionId,@departmentId)

--commit tran是事務的提交,如果沒有commit tran是一定一定會報錯的,所以網上很多垃圾寫不完整的--
commit tran
begin
 set @num = (select SCOPE_IDENTITY())

--上面這句很重要啦,這個就是得到當前插入記錄的ID值,這個很重要--
 select @department=d.departName,@positions=p.positionName,@adminType=g.groupName from Admin as a join department as d on a.departmentId=d.id join positions as p on a.positionId=p.id join groupManager as g on a.adminTypeId=g.groupId where a.id=@num
 update Admin set where id=@num
--這個不用我多說了,SQL多表連接,四張表連接--

end
GO

 在查詢分析器裡面或者程序調用:exec dbo.insertAdmin 'bb','123','sss','2','3','2'  (這個是格式)即可,記住insertAdmin 後面是沒有括號的不要自作聰明啊!

--結束,這個就是存儲過程,本來想搞自定義表,然後實現動態存儲過程動態插入的,TMD不知道為什麼只能插入四個值,第四個開始就出錯,說沒有閉合符號,真TM的煩--

BEGIN TRAN標記事務開始
COMMIT TRAN 提交事務

一般把DML語句(select ,delete,update,insert語句)放在BEGIN TRAN...COMMIT TRAN...rollback tran 之間作為一個事務處理
也就是那些語句執行過程中如果遇到錯誤,無論哪句遇到錯誤,所有語句都會回滾到BEGIN TRAN之前的狀態。

rollback tran  回滾事務

Tran 全寫:Transaction 就是事務處理,通俗的說就是處理一件事情的過程。而 RollBack 則是回滾,兩個連起來,在SQL Server 中就是撤銷先前准備做的事情。比如,你先前在事務中准備插入記錄,使用,這個之後,則插入操作不再執行並撤銷已插入的部份記錄。

我知道上面的方法一定很多人需要,只是不知道怎麼去寫,所以現在共享下。其實很簡單的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved