分页显示的存储过程(sqlserver 2k)
前两天在做网站时需要手动分页 .一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快 . 原因在这个DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返
前两天在做网站时需要手动分页.一开始用的是 SqlDataAdapter 的 public int Fill(DataSet, int, int, string); 但后来发现数据量一但很大时服务器的内存增长非常快
. 原因在这个 DataSet 包含的记录数将不会多于由maxRecords 指示的记录数。但仍然从服务器返回该查询所生成的整个结果集。
最后只能改为sql存储过程(其实也是在网上抄来的). --这是分面的存储过程
CREATE PROCEDURE dbo.GetPagingRecord
(
@tablename varchar(100),--表名或视图表
@fieldlist varchar(4000)='*',--欲选择字段列表
@orderfield varchar(100),--排序字段
@keyfield varchar(100),--主键
@pageindex int,--页号,从0开始
@pagesize int=20,--页尺寸
@strwhere varchar(4000),--条件
@ordertype bit=1--排序,1,降序,0,升序
)
AS
/**//**
名称:GetPagingRecord
作用:按任意字段进行排序分页
作者:菩提树(MARK MA)
时间:2004-12-14
*/
SET NOCOUNT ON
DECLARE @sqlstr varchar(6000)
--处理SQL中危险字符,并且将条件处理成易嵌入的形式
SET @strwhere=replace(@strwhere,'''','''''')
SET @strwhere=replace(@strwhere,'--','')
SET @strwhere=replace(@strwhere,';','')
SET @sqlstr='declare @CurPageNum int;'
SET @sqlstr=@sqlstr+'declare @nextpagenum int;'
SET @sqlstr=@sqlstr+'set @curpagenum='+cast(@PageIndex as varchar)+'*'+cast(@Pagesize as varchar)+';'
SET @sqlstr=@sqlstr+'set @nextpagenum='+cast(@PageIndex+1 as varchar)+'*'+cast(@Pagesize as varchar)+';'
SET @sqlstr=@sqlstr+'declare @sqlstr varchar(6000);'
IF @ordertype=1
BEGIN
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from
'+@tablename+' where '+@strwhere+' order by '+@orderfield+' desc ) as a where '+@keyfield+' not in (
select top ''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'
order by '+@orderfield+' desc) order by '+@orderfield+' desc'';'
END
ELSE
BEGIN
SET @sqlstr=@sqlstr+'set @sqlstr=''select '+@fieldlist+' from ( select top ''+cast(@nextpagenum as varchar)+'' * from
'+@tablename+' where '+@strwhere+' order by '+@orderfield+' asc ) as a where '+@keyfield+' not in (
select top ''+cast(@curpagenum as varchar)+'' '+@keyfield+' from '+@tablename+' where '+@strwhere+'
order by '+@orderfield+' asc) order by '+@orderfield+' asc'';'
END
SET @sqlstr=@sqlstr+'execute( @sqlstr)'
PRINT @sqlstr
EXECUTE(@sqlstr)
GO
最近在关注sql server2005 ,其t-sql增强方面改了很多,而且网上也有网友写了相对应的分页代码,简单了很多,很值得一试噢。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Für Objekte mit demselben Namen, die bereits in der SQL Server-Datenbank vorhanden sind, müssen folgende Schritte ausgeführt werden: Bestätigen Sie den Objekttyp (Tabelle, Ansicht, gespeicherte Prozedur). Mit IF NOT EXISTS kann die Erstellung übersprungen werden, wenn das Objekt leer ist. Wenn das Objekt Daten enthält, verwenden Sie einen anderen Namen oder ändern Sie die Struktur. Verwenden Sie DROP, um vorhandene Objekte zu löschen (Vorsicht, Sicherung empfohlen). Suchen Sie nach Schemaänderungen, um sicherzustellen, dass keine Verweise auf gelöschte oder umbenannte Objekte vorhanden sind.

Die Importschritte sind wie folgt: Kopieren Sie die MDF-Datei in das Datenverzeichnis von SQL Server (normalerweise C:\Programme\Microsoft SQL Server\MSSQL\DATA). Öffnen Sie in SQL Server Management Studio (SSMS) die Datenbank und wählen Sie Anhängen aus. Klicken Sie auf die Schaltfläche „Hinzufügen“ und wählen Sie die MDF-Datei aus. Bestätigen Sie den Datenbanknamen und klicken Sie auf die Schaltfläche OK.

Wenn der SQL Server-Dienst nicht gestartet werden kann, können Sie die folgenden Schritte beheben: Überprüfen Sie das Fehlerprotokoll, um die Grundursache zu ermitteln. Stellen Sie sicher, dass das Dienstkonto über die Berechtigung zum Starten des Dienstes verfügt. Überprüfen Sie, ob Abhängigkeitsdienste ausgeführt werden. Deaktivieren Sie die Antivirensoftware. Reparieren Sie die SQL Server-Installation. Wenn die Reparatur nicht funktioniert, installieren Sie SQL Server neu.

So zeigen Sie die SQL Server-Portnummer an: Öffnen Sie SSMS und stellen Sie eine Verbindung zum Server her. Suchen Sie den Servernamen im Objekt-Explorer, klicken Sie mit der rechten Maustaste darauf und wählen Sie Eigenschaften. Sehen Sie sich auf der Registerkarte „Verbindung“ das Feld „TCP-Port“ an.

SQL Server-Datenbankdateien werden normalerweise am folgenden Standardspeicherort gespeichert: Windows: C:\Programme\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data Der Speicherort der Datenbankdatei kann durch Ändern des Datenbankdateipfads angepasst werden Einstellung.

Wenn Sie eine SQL Server-Datenbank versehentlich löschen, können Sie die Datenbankaktivität stoppen; Party-Tools. Bitte sichern Sie Ihre Datenbank regelmäßig und aktivieren Sie die Transaktionsprotokollierung, um Datenverlust zu verhindern.

Wenn die SQL Server-Installation fehlschlägt, können Sie sie mit den folgenden Schritten bereinigen: Deinstallieren Sie SQL Server. Löschen Sie Registrierungsschlüssel. Löschen Sie Dateien und Ordner. Starten Sie den Computer neu

Die englische Installation von SQL Server kann wie folgt geändert werden: Laden Sie den SQL Server-Dienst herunter. Ändern Sie die Sprache der Benutzeroberfläche.
