Rumah pangkalan data tutorial mysql SQL Server 2005通用分页存储过程及多表联接应用

SQL Server 2005通用分页存储过程及多表联接应用

Jun 07, 2016 pm 05:56 PM
prosedur tersimpan

分页存储过程在好多文章中都有介绍过;本篇是不久前写的一个分页存储过程,可应用于SQL Server 2005上面,感兴趣的朋友可以研究下,希望本文对你学习存储过程有所帮助

这是不久前写的一个分页存储过程,可应用于SQL Server 2005上面:
代码如下:
if object_ID('[proc_SelectForPager]') is not null
Drop Procedure [proc_SelectForPager]
Go
Create Proc proc_SelectForPager
(
@Sql varchar(max) ,
@Order varchar(4000) ,
@CurrentPage int ,
@PageSize int,
@TotalCount int output
)
As
/*Andy 2012-2-28 */
Declare @Exec_sql nvarchar(max)
Set @Exec_sql='Set @TotalCount=(Select Count(1) From ('+@Sql+') As a)'
Exec sp_executesql @Exec_sql,N'@TotalCount int output',@TotalCount output
Set @Order=isnull(' Order by '+nullif(@Order,''),' Order By getdate()')
if @CurrentPage=1 /*经常会调用第1页,这里做特殊处理,少一层子查询*/
Set @Exec_sql='
;With CTE_Exec As
(
'+@Sql+'
)
Select Top(@pagesize) *,row_number() Over('+@Order+') As r From CTE_Exec Order By r
'
Else
Set @Exec_sql='
;With CTE_Exec As
(
Select *,row_number() Over('+@Order+') As r From ('+@Sql+') As a
)
Select * From CTE_Exec Where r Between (@CurrentPage-1)*@pagesize+1 And @CurrentPage*@pagesize Order By r
'
Exec sp_executesql @Exec_sql,N'@CurrentPage int,@PageSize int',@CurrentPage,@PageSize
Go

调用方法
1.单表
代码如下:
Exec proc_SelectForPager @Sql = 'Select * from contacts a where a.ContactType=1', -- varchar(max)
@Order = '', -- varchar(4000)
@CurrentPage = 3, -- int
@PageSize = 20, -- int
@TotalCount = 0 -- int

2.多表联接
代码如下:
Exec proc_SelectForPager @Sql =
'Select a.Staff,a.OU,b.FName+b.FName as Name
from staffOUHIST a
inner join Staff b on b.ID=a.Staff and a.ExpiryDate=''30001231''
', -- varchar(max)
@Order = '', -- varchar(4000)
@CurrentPage = 3, -- int
@PageSize = 20, -- int
@TotalCount = 0 -- int

:在@Sql 中不能使用CTE。
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Langkah dan langkah berjaga-jaga untuk melaksanakan kemas kini kelompok menggunakan prosedur tersimpan Oracle Langkah dan langkah berjaga-jaga untuk melaksanakan kemas kini kelompok menggunakan prosedur tersimpan Oracle Mar 08, 2024 pm 04:12 PM

Tajuk: Langkah dan Langkah Berjaga-jaga untuk Melaksanakan Kemas Kini Berkelompok oleh Oracle Stored Procedures Dalam pangkalan data Oracle, prosedur tersimpan ialah satu set pernyataan SQL yang direka untuk meningkatkan prestasi pangkalan data, menggunakan semula kod dan meningkatkan keselamatan prosedur boleh digunakan untuk mengemas kini data dalam kelompok. Artikel ini akan memperkenalkan cara menggunakan prosedur tersimpan Oracle untuk melaksanakan kemas kini kelompok dan menyediakan contoh kod khusus. Langkah 1: Buat prosedur tersimpan Pertama, kita perlu mencipta prosedur tersimpan untuk melaksanakan operasi kemas kini kelompok. Berikut ialah cara membuat prosedur tersimpan

Bagaimana untuk memadam prosedur tersimpan dalam MySQL Bagaimana untuk memadam prosedur tersimpan dalam MySQL Sep 05, 2023 am 10:25 AM

Kaedah MySQL untuk memadamkan prosedur tersimpan termasuk menggunakan pernyataan DROP PROCEDURE, menggunakan MySQL Workbench dan menggunakan alat baris arahan. Pengenalan terperinci: 1. Gunakan pernyataan DROP PROCEDURE Langkah-langkahnya adalah untuk membuka klien MySQL terlebih dahulu atau menggunakan mana-mana alat yang menyokong MySQL, kemudian menyambung ke pangkalan data MySQL anda, dan akhirnya melaksanakan pernyataan SQL berikut untuk memadamkan prosedur yang disimpan. Gunakan MySQL Workbench untuk memadam prosedur yang disimpan dan sebagainya.

Prosedur tersimpan Oracle: Kaedah pelaksanaan untuk menentukan sama ada jadual wujud Prosedur tersimpan Oracle: Kaedah pelaksanaan untuk menentukan sama ada jadual wujud Mar 08, 2024 pm 09:18 PM

Prosedur tersimpan dalam pangkalan data Oracle ialah jenis prosedur tersimpan khusus yang digunakan untuk melaksanakan satu siri pernyataan SQL dan operasi data dalam pangkalan data. Dalam kerja pembangunan pangkalan data sebenar, kadangkala kita perlu menentukan sama ada jadual tertentu wujud dalam pangkalan data, supaya kita boleh melakukan beberapa pertimbangan dan pemprosesan logik dalam proses penyimpanan. Di bawah ini kami akan memperkenalkan cara melaksanakan kaedah menentukan sama ada jadual wujud dalam pangkalan data Oracle, dan menyediakan contoh kod khusus. Pertama, kita boleh menggunakan jadual sistem user_tables atau all_t

Prinsip pelaksanaan dan aplikasi prosedur tersimpan Golang Prinsip pelaksanaan dan aplikasi prosedur tersimpan Golang Feb 22, 2024 pm 04:57 PM

Prinsip Pelaksanaan dan Aplikasi Prosedur Tersimpan Golang Prosedur tersimpan ialah atur cara yang telah disusun sebelumnya yang disimpan dalam pangkalan data hubungan dan boleh dipanggil oleh aplikasi Ia boleh mengurangkan kos penghantaran data rangkaian dan meningkatkan kecekapan pelaksanaan pangkalan data. Walaupun Golang tidak menyokong prosedur tersimpan secara langsung, anda boleh mensimulasikan fungsi prosedur tersimpan dengan menggunakan pernyataan SQL. Artikel ini akan memperkenalkan prinsip dan aplikasi melaksanakan prosedur tersimpan di Golang, dan menyediakan contoh kod khusus. 1. Prinsip pelaksanaan prosedur tersimpan Golang adalah dalam Gol

Strategi Pengoptimuman Prestasi untuk Kemas Kini Kumpulan Prosedur Tersimpan Oracle Strategi Pengoptimuman Prestasi untuk Kemas Kini Kumpulan Prosedur Tersimpan Oracle Mar 08, 2024 pm 09:36 PM

Strategi Pengoptimuman Prestasi untuk Kemas Kini Batch Prosedur Tersimpan Oracle Dalam pangkalan data Oracle, prosedur tersimpan ialah objek pangkalan data yang digunakan untuk memproses logik data atau melaksanakan tugas tertentu Ia boleh menyediakan strategi pengoptimuman prestasi tertentu, terutamanya apabila mengemas kini data dalam kelompok. Mengemas kini data dalam kelompok biasanya melibatkan sejumlah besar operasi peringkat baris Untuk meningkatkan prestasi dan kecekapan, kami boleh menggunakan beberapa strategi dan teknik untuk mengoptimumkan prestasi prosedur tersimpan. Berikut akan memperkenalkan beberapa strategi pengoptimuman prestasi untuk kemas kini kelompok prosedur tersimpan Oracle dan menyediakan contoh kod khusus.

Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C# Bagaimana untuk menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C# Sep 22, 2023 am 09:42 AM

Cara menulis prosedur dan fungsi tersimpan tersuai dalam MySQL menggunakan C# Pengenalan: MySQL ialah sistem pengurusan pangkalan data sumber terbuka yang digunakan secara meluas, dan C# ialah bahasa pengaturcaraan berorientasikan objek yang biasa digunakan. Semasa proses pembangunan, kita selalunya perlu menggunakan prosedur dan fungsi yang disimpan pangkalan data untuk meningkatkan kebolehgunaan dan prestasi kod semula. Artikel ini akan memperkenalkan cara menggunakan C# untuk menulis prosedur dan fungsi tersimpan tersuai dalam pangkalan data MySQL, dan menyediakan contoh kod khusus. 1. Prosedur tersimpan Prosedur tersimpan ialah satu set pernyataan SQL yang melaksanakan tugas tertentu.

Perbandingan terperinci dan analisis kelebihan prosedur dan fungsi tersimpan Oracle Perbandingan terperinci dan analisis kelebihan prosedur dan fungsi tersimpan Oracle Mar 03, 2024 am 10:24 AM

Tajuk: Perbandingan terperinci dan analisis kelebihan prosedur dan fungsi tersimpan Oracle Dalam pangkalan data Oracle, prosedur dan fungsi tersimpan ialah dua objek pangkalan data yang penting untuk merangkum satu siri pernyataan dan logik SQL untuk meningkatkan kecekapan dan kerumitan data operasi. Artikel ini akan membandingkan ciri-ciri prosedur dan fungsi yang disimpan Oracle secara terperinci, serta kelebihan masing-masing, dan memberikan contoh kod khusus. Prosedur tersimpan Prosedur tersimpan ialah satu set pernyataan SQL dan logik kod PL/SQL yang telah ditulis dan disimpan dalam pangkalan data.

Bagaimana untuk menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP Bagaimana untuk menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP Sep 20, 2023 am 11:25 AM

Cara menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP Pengenalan: Semasa membangunkan aplikasi, kita selalunya perlu melakukan beberapa operasi pada peringkat pangkalan data, seperti memasukkan, mengemas kini atau memadam data. MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas, dan PHP ialah bahasa skrip sebelah pelayan yang popular. Artikel ini akan memperkenalkan cara menulis pencetus tersuai dan prosedur tersimpan dalam MySQL menggunakan PHP, dan memberikan contoh kod khusus. 1. Apakah pencetus dan pencetus prosedur tersimpan (Trigg

See all articles