techIT.ro Do we have a problem? Let's tech it!    












Daca ai impresia ca educatia e scumpa,
atunci încearca sa vezi cum e ignoranta.
Andy McIntyre









Home  |  Dictionar IT  |  Download  |  Forum  |  Despre noi  |  Contact

Exemplu de utilizarea a tabelelor temporare în T-SQL

Acest exemplu arată modul în care se poate utiliza un tabel temporar în T-SQL. Cu acest exemplu se poate realiza paginarea articolelor rezultate în urma unei căutări simple (din tabela Article de mai jos), de pildă, pe o pagină web.
Parametrii procedurii stocate vor primi următoarele valori: parametrul @Search va primi ca valoare textul căutat, parametrul @Page va primi numărul paginii curente iar @RowsPerPage va primi valoarea numărului dorit de înregistrări pe pagină.
Procedura stocată are şi un parametru de ieşire are şi un parametru de ieşire, @NumberOfPages, care returnează numărul total de pagini.

Tabela de articole utilizată în exemplu

CREATE PROCEDURE spGetPage
@Search NVARCHAR (100),
@Page SMALLINT,
@RowsPerPage DECIMAL,
@NumberOfPages INT OUTPUT
AS

SET NOCOUNT ON
DECLARE @NumberOfRows DECIMAL

--tabelul temporar
CREATE TABLE #Temp (TempID INT IDENTITY (1, 1), [ID] INT, [Name] NCHAR (100), [Description] NVARCHAR (200))

INSERT INTO #Temp
SELECT [ID], [Name], [Description]
FROM Article
WHERE [Name] LIKE @Search + '%'
ORDER BY [Name]

--determinarea numărului de înregistrări
SELECT @NumberOfRows = COUNT (*) FROM #Temp

--calcularea numărului de pagini
SET @NumberOfPages = CEILING (@NumberOfRows / @RowsPerPage)

--selectarea înregistrărilor pentru pagina cerută
SELECT TempID, [ID], [Name], [Description]
FROM #Temp
WHERE TempID
BETWEEN ((@Page - 1) * @RowsPerPage + 1) AND ((@Page - 1) * @RowsPerPage + @RowsPerPage)

--ştergerea tabelului temporar
DROP TABLE #Temp
SET NOCOUNT OFF
RETURN @@ERROR
GO


techit.ro





Colecţia:  Exemple de cod

Articolul precedent:  Exemplu de utilizare a unei funcţii recursive şi a unui cursor în T-SQL
Articolul următor:  Utilizarea unui timer în JavaScript



  


  Adauga un comentariuSpune-ti parerea despre acest articol!