Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
Un exemple :
/********************************************************** CRÉATION DE LA VUE DES RÉFÉRENCES (RÉFÉRENTIEL) Cette procédure est injectée, s'exécute et se supprime *********************************************************** F .BROUARD - GIMA - 2003-04-28 ***********************************************************/
CREATE PROCEDURE SP_CREATE_VIEW_REF AS
DECLARE @TAB_NAME VARCHAR(128)
DECLARE @QUERY VARCHAR(8000) SET @QUERY = ''
DECLARE @TRIGRAMME CHAR(3)
DECLARE C_REFTABNAME CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'TR#_%' ESCAPE '#'
OPEN C_REFTABNAME
FETCH C_REFTABNAME INTO @TAB_NAME
WHILE @@FETCH_STATUS = 0 BEGIN SET @TAB_NAME = REVERSE(@TAB_NAME) SET @TRIGRAMME = SUBSTRING(@TAB_NAME, 1, 3) SET @TAB_NAME = REVERSE(@TAB_NAME) SET @TRIGRAMME = REVERSE(@TRIGRAMME) SET @QUERY = @QUERY + 'SELECT ''' + @TRIGRAMME+''' AS REF_TRG, ' + @TRIGRAMME + '_ID AS REF_ID , ' + @TRIGRAMME + '_CODE AS REF_COD, ' + @TRIGRAMME + '_LIBELLE AS REF_LIB, ' + @TRIGRAMME + '_BASE AS REF_BASE , ' + @TRIGRAMME + '_ORDRE AS REF_ORD' + ' FROM ' + @TAB_NAME + ' UNION ' FETCH C_REFTABNAME INTO @TAB_NAME END
CLOSE C_REFTABNAME DEALLOCATE C_REFTABNAME
-- rajouter le CREATE VIEW et supprimer le dernier 'UNION' SET @QUERY = 'CREATE VIEW V_REF AS '+SUBSTRING(@QUERY, 1, LEN(@QUERY) - 6)
EXEC (@QUERY) GO
/********************************************************** execution de la proc stock **********************************************************/
SP_CREATE_VIEW_REF
GO
/********************************************************** suppression de la proc stock **********************************************************/
DROP PROCEDURE SP_CREATE_VIEW_REF
GO
A +
julian a écrit:
J'aimerais savoir s'il est possible de creer une view à partir d'une procedure stocké.
Cette procedure aurait en variable le sql de creation de la view et le nom de la view.
merci d'avance.
julian.
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Un exemple :
/**********************************************************
CRÉATION DE LA VUE DES RÉFÉRENCES (RÉFÉRENTIEL)
Cette procédure est injectée, s'exécute et se supprime
***********************************************************
F .BROUARD - GIMA - 2003-04-28
***********************************************************/
CREATE PROCEDURE SP_CREATE_VIEW_REF
AS
DECLARE @TAB_NAME VARCHAR(128)
DECLARE @QUERY VARCHAR(8000)
SET @QUERY = ''
DECLARE @TRIGRAMME CHAR(3)
DECLARE C_REFTABNAME CURSOR
FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME LIKE 'TR#_%' ESCAPE '#'
OPEN C_REFTABNAME
FETCH C_REFTABNAME INTO @TAB_NAME
WHILE @@FETCH_STATUS = 0
BEGIN
SET @TAB_NAME = REVERSE(@TAB_NAME)
SET @TRIGRAMME = SUBSTRING(@TAB_NAME, 1, 3)
SET @TAB_NAME = REVERSE(@TAB_NAME)
SET @TRIGRAMME = REVERSE(@TRIGRAMME)
SET @QUERY = @QUERY + 'SELECT ''' + @TRIGRAMME+''' AS REF_TRG, '
+ @TRIGRAMME + '_ID AS REF_ID , '
+ @TRIGRAMME + '_CODE AS REF_COD, '
+ @TRIGRAMME + '_LIBELLE AS REF_LIB, '
+ @TRIGRAMME + '_BASE AS REF_BASE , '
+ @TRIGRAMME + '_ORDRE AS REF_ORD'
+ ' FROM ' + @TAB_NAME
+ ' UNION '
FETCH C_REFTABNAME INTO @TAB_NAME
END
CLOSE C_REFTABNAME
DEALLOCATE C_REFTABNAME
-- rajouter le CREATE VIEW et supprimer le dernier 'UNION'
SET @QUERY = 'CREATE VIEW V_REF AS '+SUBSTRING(@QUERY, 1, LEN(@QUERY) - 6)
EXEC (@QUERY)
GO
/**********************************************************
execution de la proc stock
**********************************************************/
SP_CREATE_VIEW_REF
GO
/**********************************************************
suppression de la proc stock
**********************************************************/
DROP PROCEDURE SP_CREATE_VIEW_REF
GO
A +
julian a écrit:
J'aimerais savoir s'il est possible de creer une view à
partir d'une procedure stocké.
Cette procedure aurait en variable le sql de creation de
la view et le nom de la view.
merci d'avance.
julian.
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
/********************************************************** CRÉATION DE LA VUE DES RÉFÉRENCES (RÉFÉRENTIEL) Cette procédure est injectée, s'exécute et se supprime *********************************************************** F .BROUARD - GIMA - 2003-04-28 ***********************************************************/
CREATE PROCEDURE SP_CREATE_VIEW_REF AS
DECLARE @TAB_NAME VARCHAR(128)
DECLARE @QUERY VARCHAR(8000) SET @QUERY = ''
DECLARE @TRIGRAMME CHAR(3)
DECLARE C_REFTABNAME CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'TR#_%' ESCAPE '#'
OPEN C_REFTABNAME
FETCH C_REFTABNAME INTO @TAB_NAME
WHILE @@FETCH_STATUS = 0 BEGIN SET @TAB_NAME = REVERSE(@TAB_NAME) SET @TRIGRAMME = SUBSTRING(@TAB_NAME, 1, 3) SET @TAB_NAME = REVERSE(@TAB_NAME) SET @TRIGRAMME = REVERSE(@TRIGRAMME) SET @QUERY = @QUERY + 'SELECT ''' + @TRIGRAMME+''' AS REF_TRG, ' + @TRIGRAMME + '_ID AS REF_ID , ' + @TRIGRAMME + '_CODE AS REF_COD, ' + @TRIGRAMME + '_LIBELLE AS REF_LIB, ' + @TRIGRAMME + '_BASE AS REF_BASE , ' + @TRIGRAMME + '_ORDRE AS REF_ORD' + ' FROM ' + @TAB_NAME + ' UNION ' FETCH C_REFTABNAME INTO @TAB_NAME END
CLOSE C_REFTABNAME DEALLOCATE C_REFTABNAME
-- rajouter le CREATE VIEW et supprimer le dernier 'UNION' SET @QUERY = 'CREATE VIEW V_REF AS '+SUBSTRING(@QUERY, 1, LEN(@QUERY) - 6)
EXEC (@QUERY) GO
/********************************************************** execution de la proc stock **********************************************************/
SP_CREATE_VIEW_REF
GO
/********************************************************** suppression de la proc stock **********************************************************/
DROP PROCEDURE SP_CREATE_VIEW_REF
GO
A +
julian a écrit:
J'aimerais savoir s'il est possible de creer une view à partir d'une procedure stocké.
Cette procedure aurait en variable le sql de creation de la view et le nom de la view.
merci d'avance.
julian.
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************