Je cherche une solution a la cr=E9ation d'une vue avec=20
utilisation de fonction et l'option schemabinding.=20
Sans schemabinding cela fonctionne ... mais il me faut le=20
schemabinding pour la coh=E9rence du dictionnaire des=20
donn=E9es ( comme par exemple sysdepend )=20
Any idea ?=20
CREATE FUNCTION [dbo].[test] ( @value as int)=20
RETURNS tinyint AS =20
BEGIN=20
return (@value)=20
end=20
create view [dbo].[testview] as=20
select result =3D dbo.test(1)=20
create view [dbo].[testview] with schemabinding as=20
select result =3D dbo.test(1)=20
--Result=20
--Server: Msg 4513, Level 16, State 1, Procedure testview,=20
Line 2
--Cannot schema bind view 'dbo.testview'. 'dbo.test' is=20
not schema bound.
drop view testview =20
create view [dbo].[testview] as=20
select result =3D dbo.test(1)
-- result : The command(s) completed successfully.
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
Patrice
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
--
a écrit dans le message de 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.
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
--
<s.gobillon@derivativecompany.com> a écrit dans le message de
news:4c9501c490e8$bf1bf770$a601280a@phx.gbl...
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.
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
--
a écrit dans le message de 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.