Bonjour j'ai plusieurs points à résoudre:
*J'ai un tableau fictif de chams:nom prenom salaire .
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 :
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
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
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
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
Partager