USE [Teste] GO /****** Objet : Table [dbo].[Formule] Date de génération du script : 10/27/2009 11:47:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Formule]( [NumFormule] [nvarchar](50) NOT NULL, [LibFormule] [nvarchar](50) NULL, CONSTRAINT [PK_Formule] PRIMARY KEY CLUSTERED ( [NumFormule] ASC )WITH (PAD_INDEX OFF, STATISTICS_NORECOMPUTE OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
USE [Teste] GO /****** Objet : Table [dbo].[SaisieValeur] Date de génération du script : 10/27/2009 11:47:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[SaisieValeur]( [NumVal] [nvarchar](50) NOT NULL, [Valeur] [nvarchar](50) NULL, CONSTRAINT [PK_SaisieValeur] PRIMARY KEY CLUSTERED ( [NumVal] ASC )WITH (PAD_INDEX OFF, STATISTICS_NORECOMPUTE OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
CREATE PROC GetFormule (@numFormule AS VARCHAR(2)) AS BEGIN DECLARE curValeur CURSOR FOR SELECT * FROM saisieValeur DECLARE @numValeur VARCHAR(1) DECLARE @valeur VARCHAR(3) OPEN curValeur FETCH NEXT FROM curValeur INTO @numValeur,@valeur DECLARE @formule VARCHAR(50) SET @formule=(SELECT LibFormule FROM formule WHERE NumFormule=@numFormule) WHILE(@@fetch_status=0) BEGIN SELECT @numValeur,@valeur DECLARE @caractere VARCHAR(1) DECLARE @i INT SET @i=0 WHILE(@i<len(@formule)) BEGIN DECLARE @pos INT SET @pos=(SELECT charindex(@numValeur ,@formule,@i)) SET @formule=isnull((SELECT STUFF(@formule,@pos, 1, @valeur)),@formule) SET @i=@i+1 END FETCH NEXT FROM curValeur INTO @numValeur,@valeur END SELECT @formule CLOSE curValeur DEALLOCATE curValeur END
EXEC Getformule '01'
SET @formule=isnull((SELECT STUFF(@formule,@pos,1, @valeur)),@formule)
SET @formule=isnull((SELECT STUFF(@formule,@pos-1,3, @valeur)),@formule)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question