GNT sans publicité, site mobile, fonctionnalitées exclusives...

Creation de vue avec Schemabinding et fonction

Le
Je cherche une solution a la création d'une vue avec
utilisation de fonction et l'option schemabinding.
Sans schemabinding cela fonctionne mais il me faut le
schemabinding pour la cohérence du dictionnaire des
données ( comme par exemple sysdepend )

Any idea ?


CREATE FUNCTION [dbo].[test] ( @value as int)
RETURNS tinyint AS
BEGIN
return (@value)
end

create view [dbo].[testview] as
select result = dbo.test(1)


create view [dbo].[testview] with schemabinding as
select result = dbo.test(1)

--Result
--Server: Msg 4513, Level 16, State 1, Procedure testview,
Line 2
--Cannot schema bind view 'dbo.testview'. 'dbo.test' is
not schema bound.

drop view testview

create view [dbo].[testview] as
select result = dbo.test(1)

-- result : The command(s) completed successfully.
Lire la réponse

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrice
Le #11353091
Pour être plus explicite, je suggérais d'utiliser également l'option de
SchemaBinding sur la fonction.

En effet, il me parait logique que la création d'un objet qui doit s'appuyer
sur le dictionnaire des données ne soit possible que si tous les objets
qu'il utilise s'appuient eux aussi sur le dictionnaire des données. C'est ce
que le message d'erreur me semble indiquer.

Donc :
- créer la function avec schemabinding
- créer la vue avec schemabinding

et cela devrait coller à mon avis.

Patrice

--

news:4c9501c490e8$bf1bf770$
Je cherche une solution a la création d'une vue avec
utilisation de fonction et l'option schemabinding.
Sans schemabinding cela fonctionne ... mais il me faut le
schemabinding pour la cohérence du dictionnaire des
données ( comme par exemple sysdepend )

Any idea ?


CREATE FUNCTION [dbo].[test] ( @value as int)
RETURNS tinyint AS
BEGIN
return (@value)
end

create view [dbo].[testview] as
select result = dbo.test(1)


create view [dbo].[testview] with schemabinding as
select result = dbo.test(1)

--Result
--Server: Msg 4513, Level 16, State 1, Procedure testview,
Line 2
--Cannot schema bind view 'dbo.testview'. 'dbo.test' is
not schema bound.

drop view testview

create view [dbo].[testview] as
select result = dbo.test(1)

-- result : The command(s) completed successfully.
Publicité
Suivre les réponses
Poster une réponse
Anonyme