Ik ben absoluut een leek in stored procedure, dus "don't shoot me"
Ik maak een SP en bij het runnen krijg ik mooi "Command(s) completed successfully.".
Nu wens ik deze eens uit te proberen via "Execute stored procedure" teneinde te zien of ik wel de juiste rijen verkrijg, maar daar krijg ik de fout "Must declare the scalar variable "@EmpID""
Kan iemand mij zeggen wat in onderstaande SP verkeerd is ?
[sql]
USE [db_ttl]
GO
/****** Object: StoredProcedure [dbo].[stp_GetPresRecords] Script Date: 21/05/2014 16:16:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[stp_GetPresRecords]
@Tabelnaam sysname,
@EmpID As int,
@Van As datetime,
@Tot As datetime,
@Volgorde as nvarchar = null
As
BEGIN
DECLARE @sql AS NVARCHAR(MAX)
SET @sql = 'SELECT * FROM ' + QUOTENAME(@Tabelnaam ) +
' WHERE 1=1'
SET @sql = @sql + ' AND Pres_EmpID = @EmpID'
SET @sql = @sql + ' AND Pres_Date >= @Van and Pres_Date <= @Tot'
IF @Volgorde IS NULL
SET @sql = @sql + ' ORDER BY Pres_EmpID, Pres_Date, Pres_Comment, Pres_ID'
ELSE
SET @sql = @sql + ' ORDER BY @Volgorde'
PRINT (@sql)
EXEC (@sql)
END
[/sql]
Alvast bedankt !!
Ik maak een SP en bij het runnen krijg ik mooi "Command(s) completed successfully.".
Nu wens ik deze eens uit te proberen via "Execute stored procedure" teneinde te zien of ik wel de juiste rijen verkrijg, maar daar krijg ik de fout "Must declare the scalar variable "@EmpID""
Kan iemand mij zeggen wat in onderstaande SP verkeerd is ?
[sql]
USE [db_ttl]
GO
/****** Object: StoredProcedure [dbo].[stp_GetPresRecords] Script Date: 21/05/2014 16:16:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[stp_GetPresRecords]
@Tabelnaam sysname,
@EmpID As int,
@Van As datetime,
@Tot As datetime,
@Volgorde as nvarchar = null
As
BEGIN
DECLARE @sql AS NVARCHAR(MAX)
SET @sql = 'SELECT * FROM ' + QUOTENAME(@Tabelnaam ) +
' WHERE 1=1'
SET @sql = @sql + ' AND Pres_EmpID = @EmpID'
SET @sql = @sql + ' AND Pres_Date >= @Van and Pres_Date <= @Tot'
IF @Volgorde IS NULL
SET @sql = @sql + ' ORDER BY Pres_EmpID, Pres_Date, Pres_Comment, Pres_ID'
ELSE
SET @sql = @sql + ' ORDER BY @Volgorde'
PRINT (@sql)
EXEC (@sql)
END
[/sql]
Alvast bedankt !!
Laatst bewerkt door een moderator: