存儲過程、函數區別
- 函數可以在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