SQL Server 返回结果集的几种方式
最近用到了SQL Server的几种结果集返回方法,这里整理如下(注:使用SQL Server 的 AdventureWorks2008 示例数据库)
-- 1. table function use AdventureWorks2008 go if exists ( select 1 from sys.objects where [type] in (N"TF" ,N"IF" ,N"FN") and name = "fn_getPerson" ) drop function dbo.fn_getPerson go create function dbo.fn_getPerson ( @EntityID int ) returns @result table (EntityID int ,PersonType varchar(10) ,FirstName varchar(50) ,LastName varchar(50)) as begin insert into @result ( EntityID ,PersonType ,FirstName ,LastName ) select BusinessEntityID ,PersonType ,FirstName ,LastName from Person.Person where BusinessEntityID = @EntityID return -- return must be last sql end go print("dbo.fn_getPerson has been created.") -- select * from dbo.fn_getPerson(1)
-- 3. inline function use AdventureWorks2008 go if exists ( select 1 from sys.objects where [type] in (N"TF" ,N"IF" ,N"FN") and name = "fn_getPerson2" ) drop function dbo.fn_getPerson2 go create function dbo.fn_getPerson2 ( @EntityID int ) returns table as return select BusinessEntityID ,PersonType ,FirstName ,LastName from Person.Person where BusinessEntityID = @EntityID go print("dbo.fn_getPerson2 has been created.") -- select * from dbo.fn_getPerson2(1)
-- 3. procedure use AdventureWorks2008 go if exists ( select 1 from sys.procedures where name = "usp_getPerson" ) drop procedure dbo.usp_getPerson go create procedure dbo.usp_getPerson ( @EntityID int ) as begin --....... do some process -- result of last query will return select BusinessEntityID ,PersonType ,FirstName ,LastName from Person.Person where BusinessEntityID = @EntityID end go print("dbo.usp_getPerson has been created.") -- exec dbo.usp_getPerson @EntityID = 1注:SQL Server 只返回最后一条查询的结果集
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 分页时高效的总页数计算
- 下一篇: Java中String直接赋值和使用new的区别