Je crée une procédure stockée dans Sql Server 2008. La procédure stockée a deux arguments qui sont les noms de colonnes d'une table. Dans la procédure stockée, j'ai utilisé une requête dynamique pour extraire les données de ces deux colonnes à l'aide de Cursor.La requête dynamique ne fonctionne pas avec le curseur dans SqlServer 2008 Procédure stockée
code:
Create PROCEDURE TestSP
(
@firstAttribute nvarchar(max),
@secondAttribute nvarchar(max)
)
AS
DECLARE @x FLOAT
DECLARE @y INT
DECLARE @query nvarchar(max)
DECLARE @cursor_query nvarchar(max)
DECLARE @result_Cursor as cursor
BEGIN
SET @query = 'Select '+ @firstAttribute+','[email protected]+' from TBL_TEST_DATA_NEW'
SET @cursor_query =' set @cursor = cursor for ' + @query +' open @cursor;'
PRINT 'CURSOR_QUERY'[email protected]_query
exec sys.sp_executesql
@cursor_query
,N'@cursor cursor output'
,@result_Cursor output
FETCH NEXT FROM result_Cursor INTO @x, @y
Mais quand j'exécute ce SP, il me donne l'erreur suivante
Msg 16916, Level 16, State 1, Procedure TestSP, Line 33
A cursor with the name 'result_Cursor' does not exist.
Exécuter la commande:
Exec TestSP "Column_1","Column_2"
quelqu'un peut me dire pourquoi je suis obtenir cette erreur
S'il vous plaît aider ..
Merci
Ajouter ** @ ** à votre paramètre ** result_Cursor ** et essayez de nouveau: 'FETCH NEXT @result_Cursor EN @x, @ y' –
Son travail ... Merci Nadeem ...)) – Abhay
Vous êtes le plus bienvenue;) –