2016年6月29日 星期三
2016年6月21日 星期二
[MS SQL] [T-SQL] 分頁處理:OFFSET 和 FETCH 子句 (SQL Server 2012)
Just a note to myself...
-- Using OFFSET/ FETCH (This performance was the best.)
SELECT * FROM Vocab
ORDER BY ID
OFFSET 0 ROWS
FETCH NEXT 20 ROWS ONLY;
-- Using Row_Number()
SELECT *
FROM (
SELECT row_number() OVER (ORDER BY ID) AS RowNum,ID,word
FROM dbo.Vocab) AS NewTable
WHERE RowNum >=10 and RowNum<=20;
Reference:
http://sharedderrick.blogspot.tw/2012/06/t-sql-offset-fetch.html
http://blog.xuite.net/xiaolian/blog/51944029-%5BSQL%5D+分頁之Row_Number函式用法
2016年6月16日 星期四
[MS SQL] [SP] 有輸入參數的Stored Procedure
From my old note: http://blog.xuite.net/linriva/blog/41344348
★Stored Procedure
Create procedure sp_Name
(
(
--宣告引數
--※沒有引數須將括弧拿掉
--※沒有引數須將括弧拿掉
)as
Declare
begin
--處理內容
end
Ex:
Create PROCEDURE [dbo].[sp_RivaTest]
-- =====================================================
-- Author: Riva
-- Create date: 2010.12.25
-- Description: 預存程序 sp_RivaTest XXX-- I'm Description-- I'm Description
-- =====================================================
--判斷資料庫裡是否有 sp_RivaTest 這張表
if exists (select * from dbo.sysobjects
where id = object_id(N'[dbo].[sp_RivaTest]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
--刪除Stored Procedure
drop procedure [dbo].[sp_RivaTest]
GO
GO
SET QUOTED_IDENTIFIER OFF
GO
GO
SET ANSI_NULLS ON
GO
GO
-- [sp_RivaTest] 0991225
Create PROCEDURE [dbo].[sp_RivaTest]
( --傳入的變數
@Param1 varchar(12), @Param2 varchar(12), @Param3 varchar(7), @Param4 varchar(7)
) AS
--Add By Riva 20101223--說明:-- I'm Description--※ Left(@strNewCampcode,8)為:限定 SU02_UNICAMP 存入長度為 8
begin
begin
--變數宣告
Declare @Param1 varchar(12) --xx代碼 Declare @Param2 varchar(12) --xx代碼 Declare @Param3 varchar(7) --推行起始日 Declare @Param4 varchar(7) --推行迄止日
--指派參數
set @strParam1 =@Param1 set @strParam2 =@Param2 set @strParam3 =@Param3 set @strParam4 =@Param4
--主檔
Insert SUP0002M
Select REPLACE(SU02_CAMPCODE,SU02_CAMPCODE,@strParam2) , REPLACE(SU02_UNICAMP,SU02_UNICAMP, Left(@strNParam2))
From SUP0002M Where SU02_CampCode=@strParam1
end
★AP 執行sp
exec sp_RivaTest
Ex:
strSQL = string.Format(@"exec sp_RivaTest '{0}','{1}','{2}','{3}'", Param1, Param2, Param3, Param4);
訂閱:
文章 (Atom)