1. 程式人生 > >SQL Server 返回結果集的幾種方式

SQL Server 返回結果集的幾種方式

1. 使用 Table Function 返回結果集

-- 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)

2. 使用 Inline Function 返回結果集

-- 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. 使用儲存過程返回結果集

-- 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 只返回最後一條查詢的結果集

相關推薦

SQL Server 返回結果方式

1. 使用 Table Function 返回結果集 -- 1. table function use AdventureWorks2008 go if exists ( selec

SQL SERVER 分頁的方式

背景: 在日常工作中,經常需要解決分頁的問題,這也是真分頁必須要做的一件事情。經常查詢,發現有很多的分頁方法,為了瞭解他們的分頁效率我做了一個實驗。當然,跟自己的伺服器效能也是有一定關係的。 準備: 1

SQL Server 儲存過程返回值的方式

獲得儲存過程的返回值–通過查詢分析器獲得 (1)不帶任何引數的儲存過程(儲存過程語句中含有return) —建立儲存過程 CREATE PROCEDURE testReturn AS return 145 GO —執行儲存過程 DECLARE @RC int exec @RC=

SQL分頁查詢的方式

但是 order 結果 htm sql分頁 sele esc 註意 介紹 https://www.cnblogs.com/lxhbky/p/5962393.html 需求:查詢表dbo.Message,每頁10條,查詢第2頁 1:TOP() SELECT TOP(2

SQL 的模糊查詢的方式

tween SQ 列名 HERE like BE between 指定 模糊查詢 1、使用’Like‘進行查詢 語法: where <列名> [NOT] Like <字符表達式> 2、使用’in‘在限定值內進行查詢 語法:wher

Spring Boot統一格式返回資料的方式

  有些時候呢,我們需要統一格式進行返回,之前可能會定義某個實體類在每個方法的響應都是用這個實體類然後包含響應值,其實spring呢,可以有挺多種無侵入的統一包裝方法。   第一種: @RestControllerAdvice public class ResponseHandler impleme

SQL SERVER 產生隨機數的辦法

--產生隨機數的幾種辦法: SELECT CHAR(65 + CEILING(RAND() * 25)) SELECT RIGHT(RAND(), 1) SELECT CHAR(65 + CEILING(RAND() * 25)) SELECT UPPER(CHAR(

Atitit 資料join 的原理與java實現 Atitit join表連線的原理與實現 13、SQL Server 表連線的三方式   (1) Merge Join   (2) Nested

Atitit 資料join 的原理與java實現   Atitit join表連線的原理與實現   13、SQL Server 表連線的三種方式 (1) Merge Join (2) Nested Loop Join (3) Hash Join &

SQL SERVER 2008資料丟失解決方案

一、事務處理 --資料還原到指定時間點的處理示例 --建立測試資料庫 CREATE DATABASE Db GO --對資料庫進行備份 BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT GO --建立測試表 CREATE

web server調優的方式

通過反向代理來提高效能和增加安全性 使用反向代理伺服器可以將應用伺服器從等待使用者與 web 程式互動解放出來,這樣應用伺服器就可以專注於為反向代理伺服器構建網頁,讓其能夠傳輸到網際網路上。而應用伺服器就不需要等待客戶端的響應,其執行速度可以接近於優化後的效能水平。 新增負載平

SQL Server登入錯誤的解決方案

       最近客戶讓我給他們把資料匯入到資料庫中,但是我的SQL Server特別的不給力,關鍵的時候跳出了一堆的錯誤,我估計這是我用資料庫到現在,遇到最多的一次錯誤了,花費了一晚個上的時間除錯,

獲取Executor提交的併發執行的任務返回結果的兩方式/ExecutorCompletionService使用

當我們通過Executor提交一組併發執行的任務,並且希望在每一個任務完成後能立即得到結果,有兩種方式可以採取: 方式一: 通過一個list來儲存一組future,然後在迴圈中輪訓這組future,直到每個future都已完成。如果我們不希望出現因為排在前面的任務阻

Mysql 動態sql語句返回結果-儲存過程

DELIMITER $$    DROP PROCEDURE IF EXISTS `rhtd_account_report_proc`$$ CREATE PROCEDURE `rhtd_callcenter`.`rhtd_account_report_proc`(IN userids VARCHAR(2000

拿JS非同步函式返回值的方式

在我們的編碼過程中,為了滿足業務需求,經常需要獲取JS非同步函式的返回值。今天就來彙總一下拿值的幾種方式。 1,通過回撥函式的方式來拿返回值,這個想必大家不會陌生 function getSomething(cb) { var r = 0;

C# 連接SQL Server數據庫的方式--server+data source等方式

如何使用 sel 特定 html 項目 true -- 計算機 技術分享 C# 連接SQL Server數據庫的幾種方式--server+data source等方式 如何使用Connection對象連接數據庫? 對於不同的.NET數據提供者,ADO.NET采用不同

Java資料庫的操作——DBUtils工具類結果處理的方式

public class QueryRunnerDemo{ private static Connection con=JDBCUtils.getConnection(); public static void main(String[] args) throws SQLException{ QueryRun

jdbc 呼叫 sql server 的儲存過程時“該語句沒有返回結果”的解決方法

在JDBC中呼叫SQL Server中的儲存過程時出現如下異常:  com.microsoft.sqlserver.jdbc.SQLServerException: 該語句沒有返回結果集。            at com.microsoft.sqlserver

C# 連線SQL Server資料庫的方式--server+data source等方式

<span style="font-family: Arial; background-color: rgb(255, 255, 255);">如何使用Connection物件連線資料庫?</span> 對於不同的.NET資料提供者,ADO.NET

jquery 請求返回方式

問題 語句 proc 反序 cti .net 數據 請求 result 頁面代碼 <form id="form1" runat="server"> <div> <p> Ajax請求ashx返回json數據的常見問題 &l

hadoop及hbase群啟停的方式

hadoop hbase1、生產環境集群2、web管理頁面hadoop web管理頁面(主備)http://192.168.10.101:50070http://192.168.10.102:50070hbase web管理頁面(主備)http://192.168.10.101:16010http://192