其實很容易的SQL SERVER預存程序和觸發器(10分鐘入門教程)

來源:互聯網
上載者:User

(我說是是10分鐘入門,事實上對我來說,真的就是老師講的那十分鐘,並沒有過分誇張,然後我就知道了預存程序和觸發器應該怎麼寫了,當然只是入門而已,但我恬恬缺這十分鐘,如果沒有人講,只是自己看書的話,至少要好幾天的時間了....)

 一直以來,對SQL SERVER的預存程序和觸發器都基本沒有用到,只是偶爾從網上找幾個簡單的函數PASTE到我的SQL中用。自己寫總是感覺缺點什麼,前幾天單位的培訓講了一天的SQL SERVER,看了老師寫的預存程序,才發現原來預存程序也不是很難。

事實上,也是我一直沒有堅持研究的原因,但是不能否認的是,有人講和自己學,這其中的效率實在是無法相比。尤其是對於我們這種已經編過很多年的程式,但是卻又靜不下心來看書學習的人來說,很多東西其實就是需要有人在前面帶那麼一下,把那層紙捅破了,給大家一個概貌性的東西,餘下的,就只是個時間和熟練性的問題了。

 

我認為的預存程序的紙就在這裡:

1、變數的聲明和使用

  declare @var as varchar(50)

  set var='abcd'

2、IF迴圈

if isnull(@prjid,0)=0
 begin
  print '沒有找到prjid!!!'
  return
 end
else

  begin

   --必須在這裡寫一些代碼,否則會報錯。

  end

3、遊標的使用

  1. declare curJD cursor for 
  2.     select id,fzbh from _tzk
  3. open curJD
  4. fetch next from curJD into @jdID,@paperno
  5. while @@FETCH_STATUS=0
  6. BEGIN
  7.   --這裡是一些處理代碼
  8.   fetch next from curJD into @jdID,@paperno
  9. END
  10. close curJD
  11. deallocate curJD

4、觸發器的使用

關鍵在於inserted表和deleted表的使用

  1. ALTER   TRIGGER  RoleInsert  ON [dbo].[roleName] 
  2. AFTER  INSERT
  3. AS
  4. declare @RoleID as bigint
  5. set @RoleID=(select roleid from inserted)
  6. insert into rolerule (roleid,menuid,pw) 
  7. select @roleid,menuid,0 from menus where menus.menuid not in 
  8. (select menuid from rolerule where roleid=@roleid) 
  9. update rolerule set pw=1 where menuid in (select menuid from menus where always=1)
  10.     and roleid in (select roleid from inserted)

然後有了這幾個例子,其它的就是熟練的一個過程了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.