it-swarm.com.de

So führen Sie die Funktion in SQL Server 2008 aus

Ich baue eine Funktion und versuche, sie auszuführen ... aber es treten einige Fehler auf

CREATE FUNCTION dbo.Afisho_rankimin(@emri_rest int)
RETURNS int
AS
   BEGIN
       Declare @rankimi int
       Select @rankimi=dbo.RESTORANTET.Rankimi
       From RESTORANTET
       Where  [email protected]_rest
       RETURN @rankimi
  END
  GO
    SELECT dbo.Afisho_rankimin(5)AS Rankimi
  GO

Die Fehler beim Ausführen sind:

Meldung 2714, Ebene 16, Status 3, Verfahren Afisho_rankimin, Zeile 11
Es gibt bereits ein Objekt mit dem Namen 'Afisho_rankimin' in der Datenbank.

und es heißt auch:

Kann die Spalte "dbo" oder die benutzerdefinierte Funktion oder das Aggregat "dbo.Afisho_rankimin" nicht finden oder der Name ist nicht eindeutig

16
user3233650

Es sieht so aus, als gäbe es in Ihrer Datenbank etwas anderes namens Afisho_rankimin, sodass die Funktion nicht erstellt wird. Rufen Sie Ihre Funktion etwas anderes auf. Z.B.

CREATE FUNCTION dbo.Afisho_rankimin1(@emri_rest int)
RETURNS int
AS
   BEGIN
       Declare @rankimi int
       Select @rankimi=dbo.RESTORANTET.Rankimi
       From RESTORANTET
       Where  dbo.RE[email protected]_rest
       RETURN @rankimi
  END
  GO

Beachten Sie, dass Sie dies nur einmal aufrufen müssen, nicht jedes Mal, wenn Sie die Funktion aufrufen. Versuchen Sie danach anzurufen

SELECT dbo.Afisho_rankimin1(5) AS Rankimi 
17
Yuriy Galanter

Ich bin mehrmals auf diese und die folgende Frage gekommen.

So rufen Sie die Skalarfunktion in SQL Server 2008 auf

Ich versuche jedes Mal, die Funktion mit der in SQL Server Management Studio (SSMS) gezeigten Syntax einzugeben, um die Ergebnisse zu sehen, und jedes Mal, wenn ich die Fehler bekomme.

Für mich liegt das daran, dass meine Ergebnismenge im tabellarischen Datenformat vorliegt. Um die Ergebnisse in SSMS zu sehen, muss ich es daher so nennen:

SELECT * FROM dbo.Afisho_rankimin_TABLE(5);

Ich verstehe, dass die Frage des Autors eine Skalarfunktion umfasste. Diese Antwort soll nur anderen helfen, die StackOverflow häufig besuchen, wenn sie ein Problem mit einer Abfrage haben (wie ich).

Ich hoffe das hilft anderen.

12
jp2code

sie können eine Funktion erstellen, bevor.

Alter FUNCTION dbo.Afisho_rankimin(@emri_rest int)
RETURNS int
AS
  BEGIN
     Declare @rankimi int
     Select @rankimi=dbo.RESTORANTET.Rankimi
     From RESTORANTET
     Where  [email protected]_rest
     RETURN @rankimi
END
GO

SELECT dbo.Afisho_rankimin(5) AS Rankimi
GO
2
Almostafa