sql server存儲過程和函數

存儲過程、函數區別

  • 函數可以在sql語句中調用,存儲過程不行
  • 函數只能返回一個返回值,存儲過程可以返回多個

存儲過程

  • 無參數的存儲過程
create proc usp_helloworld
as
begin
    print 'Hello World'
end
  • 有參數的存儲過程
create proc usp_book
@name nvarchar(50),
@author nvarchar(50)
as
begin
    select * from book where name=@name and author=@author
end

調用
exec usp_book “test”,“book”
exec usp_book @name=“test”,@author=“book”

  • 帶輸出的存儲過程
create proc usp_output
@bookname nvarchar(50),
@recordCount int output --關鍵字代表輸出參數
as
begin
   select * from hero where bookname=@bookname
   --把查詢的記錄條數賦值給變量@recordCount
   set @recordCount = (select count(*) from hero where bookname=@bookname)
end 

declare @num int
exec usp_output @bookname=‘test’,@recordCount=@num output
select @num as table_name

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章