Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 10h28   #1
Invité de passage
 
Inscription : juillet 2011
Messages : 12
Détails du profil
Informations forums :
Inscription : juillet 2011
Messages : 12
Points : 0
Points : 0
Par défaut sql dynamique fonctions qui prend en parametre une table

Bonjour j'ai plusieurs points à résoudre:

*J'ai un tableau fictif de chams:nom prenom salaire .
Citation:
patson courbois 23000
henry figo 21 0000
thierry ronaldo 45 000
alain larson 45 12121
neo pitbull 12 2222


Pour numéroter distinctement les lignes de tables j'ai utilse une simple requete :

Code :
SELECT *, ROW_NUMBER() OVER  (ORDER BY (SELECT 1))  AS RowNumber FROM   [test].[dbo].[Table_essai];

qui marche bien avec test ma base de donne table_essai ma table
select 1 qui numerote selon la premiere colonne
row_number indice de renumerotation

Citation:
patson courbois 23000 1
henry figo 21 0000 2
thierry ronaldo 45 000 3
alain larson 45 12121 4
neo pitbull 12 2222 5

Ma première question est de transformer cette requête en procedure stockée ou fonction qui fera la même chose mais avec n'importe quelle table chargée l’intérêt est d'écrire seulement le nom de la table en paramètre et le tour est jou
Code :
1
2
3
4
5
 
CREATE FUNCTION numero_row(@NOM_TABLE VARCHAR(200))
returns TABLE
AS
          RETURN ( SELECT *, ROW_NUMBER() OVER  (ORDER BY (SELECT 1))  AS RowNumber FROM  @NOM_TABLE);

J'ai cette erreur
Citation:
Msg 1087, Level 16, State 1, Procedure numero_row, Line 22
Must declare the table variable "@NOM_TABLE".
Je pense que vient du sql dynamic
Quelqu'un aurait une idée de syntaxe de la fonction à faire???





Ma seconde question est juste de savoir comment (toujours fonction ou procédure) echanger une ligne i et une ligne j d'une table en gros une fonction de swap
cedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 09h33   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 954
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 954
Points : 17 774
Points : 17 774
Une fonction ne peut pas par nature accepter du SQL dynamique.
Voici quelles sont les limites des fonctions : http://blog.developpez.com/elsuket/p...liser-dans-le/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h35.


 
 
 
 
Partenaires

Hébergement Web