Bonjour
A chaque fois que j'essaye de créer ma procédure stockée j'obtient la même erreur (parmis d'autres):
Msg 1087, Level 15, State 2, Procedure vc_changedatatype, Line 11
La variable de table '@NomTable' doit être déclarée.
Or @NomTable est le nom d'un parametre de la procédure. Je ne vois pas vraiment comment faire (pour nota je débute vraiment dans ce domaine ^^).
Pour info cette procédure sera utilisée à partir d'un programme, d'où la présence de RETURN, pour informer le programme de l'état de la procédure.
Voici la procédure en question :
USE project;
GO
IF OBJECT_ID ( 'vc_changedatatype', 'P' ) IS NOT NULL
DROP PROCEDURE vc_changedatatype;
GO
CREATE PROCEDURE vc_changedatatype
@NomTable nvarchar(50),
@NomColonne nvarchar(50),
@Genre nvarchar(50)
AS
SET NOCOUNT ON;
BEGIN TRANSACTION
begin try
if @Genre = 'int'
-- Suppression des non numériques et des non entiers
UPDATE @NomTable SET @NomColonne = NULL WHERE ((@NomColonne LIKE '%.%') OR (@NomColonne LIKE '%,%') OR (ISNUMERIC(@NomColonne) <> 1));
if @Genre = 'real'
-- Suppression des non numériques
UPDATE @NomTable SET @NomColonne = NULL WHERE ISNUMERIC(@NomColonne) = 1;
else
return (0)
-- Une fois le tri fait, on met à jour le type de données
ALTER TABLE @NomTable ALTER COLUMN @NomColonne @typedonnee;
end try
begin catch
ROLLBACK TRANSACTION
RETURN (0)
end catch
COMMIT TRANSACTION
return (1)
GO
Je suppose que j'utilise mal les variables mais je ne sais aps vraiment pourquoi .....
Merci d'avance