Errore durante la creazione di vista -. [Dbo] [someFunction] non è lo schema vincolati
-
30-09-2019 - |
Domanda
ottengo questo errore durante la creazione di una vista: "Impossibile vista schema bind 'dbo.viewStock'. 'Dbo.GetStockCurrentQuantityByProduct' non è lo schema legato".
BACKGROUND: Quello che in realtà voglio raggiungere è migliorare la velocità di una query che recupera prodotto Id / stock attuale. Lo stock attuale viene calcolato da una funzione che conta le unità / unità fuori per un prodotto specifico ( 'dbo.GetStockCurrentQuantityByProduct'). Sto esplorando una soluzione possibile - la creazione di una vista indicizzata al prodotto hold Ids e le scorte attuali, in modo da poter selezionare direttamente da esso per una più rapida esecuzione di query:
CREATE VIEW [dbo].[viewStock] with schemabinding
as
SELECT P.ProductId,
dbo.GetStockCurrentQuantityByProduct(P.ProductId) AS Quantity
FROM dbo.Product
Quando eseguo questo, ottengo l'errore:
Cannot schema bind view 'dbo.viewStock'.
'dbo.GetStockCurrentQuantityByProduct' is not schema bound.
Soluzione
Si veda l'opzione SCHEMABINDING di CREATE FUNCTION o alterare la funzione