OVH Cloud OVH Cloud

Cration d'une vue

3 réponses
Avatar
BE \(Christophe Houchard\)
Bonjour,

J'ai un petit problème avec le code suivant. Pourriez vous m'aider.

DECLARE @NoAR AS VARCHAR(30)
SET @NoAR = 'AR0406912'

CREATE VIEW Vue_Opti (C01,C02) AS
(SELECT Quantite,Designation1 FROM CDE WHERE NoAccuseRecepto = @NoAR)


Le message d'erreur qu'il m'affiche est le suivant:
'CREATE VIEW' doit être la première instruction d'un lot de requêtes.

Comment faire ?

Merci pour votre aide.

3 réponses

Avatar
Yan
Bonjour,

Déjà, je crois qu'on ne peut pas mettre de variable dans une vue
Et puis comme dit le message, CREATE VIEW doit être la première instruction,
ou alors il faut un GO juste avant. Mais GO réinitialise les variables :)



"BE (Christophe Houchard)" a écrit dans le message de
news:%
Bonjour,

J'ai un petit problème avec le code suivant. Pourriez vous m'aider.

DECLARE @NoAR AS VARCHAR(30)
SET @NoAR = 'AR0406912'

CREATE VIEW Vue_Opti (C01,C02) AS
(SELECT Quantite,Designation1 FROM CDE WHERE NoAccuseRecepto = @NoAR)


Le message d'erreur qu'il m'affiche est le suivant:
'CREATE VIEW' doit être la première instruction d'un lot de requêtes.

Comment faire ?

Merci pour votre aide.






Avatar
Fred BROUARD
une vue n'est pas une procédure et ne peut en aucun cas contenir de variable.

Utilisez une SP pour faire cela.

Exemple :

CREATE PROCEDURE SP_MA_VUE_PARAMETREE @NOAR VARCHAR(30)
AS
SELECT Quantite AS C01, Designation1 AS C02
FROM CDE
WHERE NoAccuseRecepto = @NoAR
GO

-- exemple d'exécution
SP_MA_VUE_PARAMETREE 'AR0406912'

a lire :
sur les vues : http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA8
sur les SP : http://sqlpro.developpez.com/TransactSQL/SQL_MSTransactSQL.html#4

A +


--
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 *************************

BE (Christophe Houchard) a écrit:
Bonjour,

J'ai un petit problème avec le code suivant. Pourriez vous m'aider.

DECLARE @NoAR AS VARCHAR(30)
SET @NoAR = 'AR0406912'

CREATE VIEW Vue_Opti (C01,C02) AS
(SELECT Quantite,Designation1 FROM CDE WHERE NoAccuseRecepto = @NoAR)


Le message d'erreur qu'il m'affiche est le suivant:
'CREATE VIEW' doit être la première instruction d'un lot de requêtes.

Comment faire ?

Merci pour votre aide.






Avatar
Steve Kass
Christophe,

Est-ce qu'un fonction paramétrisée vous servira?

create function Vue_Opti (
@NoAR varchar(30)
) returns table as return
select Quantite, Designation1
from CDE where NoAccuseRecepto = @NoAR
go

select Quantite, Designation
from Vue_Opti('AR0406912)

declare @Numero varchar(30)
set @Numero = 'AR0406912'
select * from Vue_Opti(@Numero)

Steve Kass
Drew University

BE (Christophe Houchard) wrote:

Bonjour,

J'ai un petit problème avec le code suivant. Pourriez vous m'aider.

DECLARE @NoAR AS VARCHAR(30)
SET @NoAR = 'AR0406912'

CREATE VIEW Vue_Opti (C01,C02) AS
(SELECT Quantite,Designation1 FROM CDE WHERE NoAccuseRecepto = @NoAR)


Le message d'erreur qu'il m'affiche est le suivant:
'CREATE VIEW' doit être la première instruction d'un lot de requêtes.

Comment faire ?

Merci pour votre aide.