Heim Datenbank MySQL-Tutorial SQL Server 2005通用分页存储过程及多表联接应用

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

Jun 07, 2016 pm 05:56 PM
存储过程

分页存储过程在好多文章中都有介绍过;本篇是不久前写的一个分页存储过程,可应用于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。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Schritte und Vorsichtsmaßnahmen für die Implementierung von Batch-Updates mithilfe gespeicherter Oracle-Prozeduren Schritte und Vorsichtsmaßnahmen für die Implementierung von Batch-Updates mithilfe gespeicherter Oracle-Prozeduren Mar 08, 2024 pm 04:12 PM

Titel: Schritte und Vorsichtsmaßnahmen für die Implementierung von Stapelaktualisierungen durch gespeicherte Oracle-Prozeduren. In Oracle-Datenbanken handelt es sich bei gespeicherten Prozeduren um eine Reihe von SQL-Anweisungen, die dazu dienen, die Datenbankleistung zu verbessern, Code wiederzuverwenden und die Sicherheit zu erhöhen. Gespeicherte Prozeduren können zum Aktualisieren von Daten in Stapeln verwendet werden. In diesem Artikel wird erläutert, wie gespeicherte Oracle-Prozeduren zum Implementieren von Batch-Updates verwendet werden, und es werden spezifische Codebeispiele bereitgestellt. Schritt 1: Erstellen Sie eine gespeicherte Prozedur. Zuerst müssen wir eine gespeicherte Prozedur erstellen, um Stapelaktualisierungsvorgänge zu implementieren. Im Folgenden erfahren Sie, wie Sie eine gespeicherte Prozedur erstellen

So löschen Sie eine gespeicherte Prozedur in MySQL So löschen Sie eine gespeicherte Prozedur in MySQL Sep 05, 2023 am 10:25 AM

Zu den MySQL-Methoden zum Löschen gespeicherter Prozeduren gehören die Verwendung der DROP PROCEDURE-Anweisung, die Verwendung von MySQL Workbench und die Verwendung von Befehlszeilentools. Detaillierte Einführung: 1. Verwenden Sie die DROP PROCEDURE-Anweisung. Die Schritte bestehen darin, zuerst den MySQL-Client zu öffnen oder ein beliebiges Tool zu verwenden, das MySQL unterstützt, dann eine Verbindung zu Ihrer MySQL-Datenbank herzustellen und schließlich die folgende SQL-Anweisung auszuführen, um die gespeicherte Prozedur zu löschen. Verwenden Sie MySQL Workbench, um gespeicherte Prozeduren usw. zu löschen.

Gespeicherte Oracle-Prozedur: Implementierungsmethode zur Bestimmung, ob eine Tabelle vorhanden ist Gespeicherte Oracle-Prozedur: Implementierungsmethode zur Bestimmung, ob eine Tabelle vorhanden ist Mar 08, 2024 pm 09:18 PM

Gespeicherte Prozeduren in Oracle-Datenbanken sind eine bestimmte Art von gespeicherten Prozeduren, die zum Ausführen einer Reihe von SQL-Anweisungen und Datenoperationen in der Datenbank verwendet werden. Bei der tatsächlichen Datenbankentwicklung müssen wir manchmal feststellen, ob eine bestimmte Tabelle in der Datenbank vorhanden ist, damit wir im gespeicherten Prozess eine gewisse Beurteilung und logische Verarbeitung vornehmen können. Im Folgenden stellen wir vor, wie Sie die Methode zur Bestimmung, ob eine Tabelle in der Oracle-Datenbank vorhanden ist, implementieren und stellen spezifische Codebeispiele bereit. Erstens können wir die Systemtabelle user_tables oder all_t verwenden

Implementierungsprinzipien und Anwendungen gespeicherter Golang-Prozeduren Implementierungsprinzipien und Anwendungen gespeicherter Golang-Prozeduren Feb 22, 2024 pm 04:57 PM

Implementierungsprinzipien und Anwendungen gespeicherter Golang-Prozeduren Eine gespeicherte Prozedur ist ein vorkompiliertes Programm, das in einer relationalen Datenbank gespeichert ist und von einer Anwendung aufgerufen werden kann. Sie kann die Kosten für die Netzwerkübertragung von Daten effektiv senken und die Ausführungseffizienz der Datenbank verbessern. Obwohl Golang gespeicherte Prozeduren nicht direkt unterstützt, können Sie die Funktionen gespeicherter Prozeduren mithilfe von SQL-Anweisungen simulieren. In diesem Artikel werden die Prinzipien und Anwendungen der Implementierung gespeicherter Prozeduren in Golang vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Das Implementierungsprinzip der gespeicherten Golang-Prozedur ist in Gol

Leistungsoptimierungsstrategie für Oracle Stored Procedure Batch Update Leistungsoptimierungsstrategie für Oracle Stored Procedure Batch Update Mar 08, 2024 pm 09:36 PM

Strategien zur Leistungsoptimierung für Stapelaktualisierungen von gespeicherten Oracle-Prozeduren In Oracle-Datenbanken ist eine gespeicherte Prozedur ein Datenbankobjekt, das zum Verarbeiten von Datenlogik oder zum Ausführen bestimmter Aufgaben verwendet wird. Sie kann bestimmte Strategien zur Leistungsoptimierung bereitstellen, insbesondere bei der Aktualisierung von Daten in Stapeln. Das Aktualisieren von Daten in Stapeln erfordert normalerweise eine große Anzahl von Vorgängen auf Zeilenebene. Um die Leistung und Effizienz zu verbessern, können wir einige Strategien und Techniken anwenden, um die Leistung gespeicherter Prozeduren zu optimieren. Im Folgenden werden einige Strategien zur Leistungsoptimierung für Stapelaktualisierungen gespeicherter Oracle-Prozeduren vorgestellt und spezifische Codebeispiele bereitgestellt.

So schreiben Sie benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL mit C# So schreiben Sie benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL mit C# Sep 22, 2023 am 09:42 AM

So schreiben Sie benutzerdefinierte gespeicherte Prozeduren und Funktionen in MySQL mit C#. Einführung: MySQL ist ein weit verbreitetes Open-Source-Datenbankverwaltungssystem, und C# ist eine häufig verwendete objektorientierte Programmiersprache. Während des Entwicklungsprozesses müssen wir häufig in Datenbanken gespeicherte Prozeduren und Funktionen verwenden, um die Wiederverwendbarkeit und Leistung des Codes zu verbessern. In diesem Artikel wird erläutert, wie Sie mit C# benutzerdefinierte gespeicherte Prozeduren und Funktionen in einer MySQL-Datenbank schreiben, und es werden spezifische Codebeispiele bereitgestellt. 1. Gespeicherte Prozeduren Eine gespeicherte Prozedur ist eine Reihe von SQL-Anweisungen, die bestimmte Aufgaben ausführen.

Detaillierter Vergleich und Vorteilsanalyse von gespeicherten Oracle-Prozeduren und -Funktionen Detaillierter Vergleich und Vorteilsanalyse von gespeicherten Oracle-Prozeduren und -Funktionen Mar 03, 2024 am 10:24 AM

Titel: Detaillierter Vergleich und Vorteilsanalyse von gespeicherten Oracle-Prozeduren und -Funktionen. In Oracle-Datenbanken sind gespeicherte Prozeduren und Funktionen zwei wichtige Datenbankobjekte. Sie können zur Kapselung einer Reihe von SQL-Anweisungen und Logik verwendet werden, um die Effizienz und Komplexität von Daten zu verbessern Benutzerfreundlichkeit. In diesem Artikel werden die Eigenschaften der gespeicherten Oracle-Prozeduren und -Funktionen sowie ihre jeweiligen Vorteile im Detail verglichen und spezifische Codebeispiele bereitgestellt. Gespeicherte Prozedur Eine gespeicherte Prozedur ist eine Reihe von SQL-Anweisungen und PL/SQL-Codelogik, die vorab geschrieben und in der Datenbank gespeichert werden.

So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP Sep 20, 2023 am 11:25 AM

So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP. Einführung: Bei der Entwicklung von Anwendungen müssen wir häufig einige Vorgänge auf Datenbankebene ausführen, z. B. das Einfügen, Aktualisieren oder Löschen von Daten. MySQL ist ein weit verbreitetes relationales Datenbankverwaltungssystem und PHP ist eine beliebte serverseitige Skriptsprache. In diesem Artikel wird erläutert, wie Sie mit PHP benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL schreiben, und es werden spezifische Codebeispiele bereitgestellt. 1. Was sind Trigger und gespeicherte Prozedur-Trigger (Trigg

See all articles