Ik bouw een functie en ik probeer deze uit te voeren…maar er treden enkele fouten op
CREATE FUNCTION dbo.Afisho_rankimin(@emri_rest int)
RETURNS int
AS
BEGIN
Declare @rankimi int
Select @rankimi=dbo.RESTORANTET.Rankimi
From RESTORANTET
Where dbo.RESTORANTET.ID_Rest=@emri_rest
RETURN @rankimi
END
GO
SELECT dbo.Afisho_rankimin(5)AS Rankimi
GO
De fouten wanneer ik het uitvoer zijn:
Bericht 2714, niveau 16, staat 3, procedure Afisho_rankimin, regel 11
Er is al een object met de naam ‘Afisho_rankimin’ in de database.
en er wordt ook gezegd dat:
Kan kolom “dbo”, of de door de gebruiker gedefinieerde functie, of aggregaat “dbo.Afisho_rankimin” niet vinden of de naam is dubbelzinnig
Antwoord 1, autoriteit 100%
Het lijkt erop dat er iets anders is met de naam Afisho_rankimin
in uw database, dus de functie wordt niet gemaakt. Probeer uw functie iets anders aan te roepen. Bijv.
CREATE FUNCTION dbo.Afisho_rankimin1(@emri_rest int)
RETURNS int
AS
BEGIN
Declare @rankimi int
Select @rankimi=dbo.RESTORANTET.Rankimi
From RESTORANTET
Where dbo.RESTORANTET.ID_Rest=@emri_rest
RETURN @rankimi
END
GO
Houd er rekening mee dat u dit maar één keer hoeft aan te roepen, niet elke keer dat u de functie aanroept. Probeer daarna te bellen
SELECT dbo.Afisho_rankimin1(5) AS Rankimi
Antwoord 2, autoriteit 68%
Ik ben meerdere keren op deze vraag en die hieronder gekomen.
hoe de scalaire functie in sql server 2008 aan te roepen
Elke keer probeer ik de functie in te voeren met behulp van de syntaxis die hier wordt weergegeven in SQL Server Management Studio, of SSMS, om de resultaten te zien, en elke keer krijg ik de fouten.
Voor mij is dat omdat mijn resultatenset in tabelvorm is. Daarom, om de resultaten in SSMS te zien, moet ik het zo noemen:
SELECT * FROM dbo.Afisho_rankimin_TABLE(5);
Ik begrijp dat de vraag van de auteur een scalaire functie betrof, dus dit antwoord is alleen bedoeld om anderen te helpen die vaak naar StackOverflow komen als ze een probleem hebben met een vraag (zoals ik).
Ik hoop dat dit anderen helpt.
Antwoord 3, autoriteit 6%
het kan zijn dat u eerder de functie maakt,
update uw functie opnieuw met.
Alter FUNCTION dbo.Afisho_rankimin(@emri_rest int)
RETURNS int
AS
BEGIN
Declare @rankimi int
Select @rankimi=dbo.RESTORANTET.Rankimi
From RESTORANTET
Where dbo.RESTORANTET.ID_Rest=@emri_rest
RETURN @rankimi
END
GO
SELECT dbo.Afisho_rankimin(5) AS Rankimi
GO