Hola!
Estoy intentado crear un Procedimiento almacenado desde el MySQL Workbench pero este me alerta de un error en el primer SET sqlStatement (también he tenido que cambiar nvarchar(max) por nvarchar(1000)):
Código MySQL:
Ver originalDELIMITER $$
DECLARE sqlStatement nvarchar
(1000);
SET upperBound
= startIndex
+ pageSize
; SET sqlStatement
='SELECT E.id_evento, E.titulo, E.fecha_evento, E.lugar FROM (SELECT ROW_NUMBER() OVER(ORDER BY ' + sortBy + ') AS rowNumber, *
FROM Employee
) AS E
exec (sqlStatement)
Este store procedure lo voy a ejecutar desde C#.NET, por eso le tengo que pasar parámetros. Lo quiero utilizar para paginar los resultados.
Ah, y este procedure lo estoy "portando" de SQL server, donde funciona perfectamente a MySQL...pero no logro que funcione...
Os dejo aquí si quereis el original de SQL Server:
Código SQL:
Ver originalCREATE PROCEDURE spGetAllEmployee
(
@startIndex INT,
@pageSize INT,
@sortBy nvarchar(30),
@totalEmployees INT OUTPUT
)
AS
SET NOCOUNT ON
DECLARE
@sqlStatement nvarchar(MAX),
@upperBound INT
IF @startIndex < 1 SET @startIndex = 1
IF @pageSize < 1 SET @pageSize = 1
SET @upperBound = @startIndex + @pageSize
SELECT @totalEmployees=COUNT(*) FROM Employee
SET @sqlStatement = ' SELECT E.EmployeeID, E.EmployeeCode, E.Name, E.Department, E.Salary
FROM (
SELECT ROW_NUMBER() OVER(ORDER BY ' + @sortBy + ') AS rowNumber, *
FROM Employee
) AS E
WHERE rowNumber >= ' + CONVERT(VARCHAR(9), @startIndex) + ' AND
rowNumber < ' + CONVERT(VARCHAR(9), @upperBound)
EXEC (@sqlStatement)
Me podeis hechar una ayudita a ver si logro solucionar este fallo?
Muchas gracias por todo y un Saludo!