Bonjour,

J'utilise une procedure qui fonctionne, dont voici le code


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
CREATE PROCEDURE [dbo].[pkCreateVueTEST]
 @datelecture varchar(20)
AS
BEGIN 
 SET NOCOUNT ON;
 SET DATEFORMAT DMY;
 
 
 --Supprime avant création
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[MAVUE]'))
 DROP VIEW [dbo].[MAVUE]
 
 exec('create view [dbo].[MAVUE] as 
    select id, nom, datetest from MATABLE
    where datetest >= ''' + @datelecture + ''' ; ');
 
END
GO

Mais je voudrais rendre le nom de la vue dynamique en utilisant le nom du poste :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE PROCEDURE [dbo].[pkCreateVueTEST]
 @datelecture varchar(20)
AS
BEGIN 
 SET NOCOUNT ON;
 SET DATEFORMAT DMY;
 
 DECLARE @TEST as varchar(128);
 SET @TEST='[dbo].[MAVUE]'+(SELECT host_name());
 
 --Supprime avant création
 IF  EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(@TEST))
 DROP VIEW @TEST
 
 exec('create view ' + @TEST + ' as 
    select id, nom, datetest from MATABLE
    where datetest >= ''' + @datelecture + ''' ; ');
 
END
GO
Le drop view sur le nom de table, tel que je l'écris ne passe pas à la compilation.
Pouvez-vous m'aider sur ce point ?

Merci