04/06/2008Sur SQL-Server, il n'est pas possible de créer une vue (CREATE VIEW) dans une procédure stockée, au risque d'obtenir le message "
Incorrect syntax near the keyword 'VIEW"', comme ci-dessous :
IF OBJECT_ID ('[Ma_Procedure]') IS NOT NULL
DROP PROCEDURE [Ma_Procedure];
GO
CREATE PROCEDURE [Ma_Procedure]
AS
-- ================================================
-- Crée une vue
-- =============================================
IF OBJECT_ID ('[Ma_Vue]') IS NOT NULL
DROP VIEW [Ma_Vue];
CREATE VIEW [Ma_Vue]
AS SELECT GETDATE() AS CurrentDate,
@@LANGUAGE AS CurrentLanguage,
CURRENT_USER AS CurrentUser
GO
[Ma_Procedure]
D'autres fonctions ne sont également pas autorisées : CREATE DEFAULT, CREATE RULE, CREATE PROCEDURE mais il y a cependant moyen de le faire en utilisant la fonction EXEC sur la chaîne de création, comme ceci :
EXEC('CREATE VIEW [Ma_Vue]
AS SELECT GETDATE() AS CurrentDate,
@@LANGUAGE AS CurrentLanguage,
CURRENT_USER AS CurrentUser')
Dernière modification le 09/01/2019 - Quillevere.net