Bonjour,
J'ai une petite question, est-ce que les curseurs paramétrés existent sous MS SQL Server ou existe-t-il quelque chose de semblable ?
Merci,
Évans
Bonjour,
J'ai une petite question, est-ce que les curseurs paramétrés existent sous MS SQL Server ou existe-t-il quelque chose de semblable ?
Merci,
Évans
Qu'est ce que vous appelez par Curseur paramétrable ?
Veuillez illustrer par un exemple.
Oui, vous pouvez utiliser un curseur en SQL dynamique. En fait un curseur est objet de la base de données comme une table ou une procédure stockée.
Exemple :
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 DECLARE @my_cur CURSOR EXEC sp_executesql N'SET @my_cur = CURSOR FOR SELECT name FROM dbo.sysobjects; OPEN @my_cur', N'@my_cur cursor OUTPUT', @my_cur OUTPUT FETCH NEXT FROM @my_cur
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Bonjour,
C'est parce que j'avais déjà travaillé sous Oracle et ces types de curseurs se prénommaient ainsi.
Exemple sous Oracle :
Je vais voir si je peux faire quelque chose avec le SQL dynamique, mais je ne suis pas certain que ce soit semblable. Peut-être si je redéclare mon curseur à chaque fois ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 DECLARE v_Succursale succursales.succursale%TYPE; CURSOR c_Employe IS SELECT e.no_employe, e.nom FROM Employes e, succursales s WHERE e.codesucc = s.codesucc AND s.succursale = v_Succursale; OPEN c_Employe('AAA');
La raison de ça est que j'ai un curseur dont j'aimerais que son SELECT varie selon un numéro qui pourrait recevoir en paramètre, mais je ne sais pas si c'est possible comme dans Oracle.
Merci,
Évans
Évans
Partager