Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to execute function in SQL Server 2008

I build a function and I am trying to execute it...but some errors are occurring

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 

The errors when I execute it are:

Msg 2714, Level 16, State 3, Procedure Afisho_rankimin, Line 11
There is already an object named 'Afisho_rankimin' in the database.

and also it is said that:

Can not find column "dbo", or the user defined function, or aggregate "dbo.Afisho_rankimin", or the name is ambiguous

like image 231
user3233650 Avatar asked Jan 26 '14 00:01

user3233650


People also ask

Can we execute a function in SQL?

Scalar-valued functions can be executed by using the EXECUTE statement. If you EXECUTE a function rather than use it in a SELECT statement or constraint, you can leave out the schema name in the function name, and it will look in the dbo schema followed by the users default schema.

How do you execute a database function?

Connect to the database. Create a PreparedStatement object and to its constructor pass the function call in String format. Set values to the place holders. Execute the Callable statement.

How do I run a SQL script in SQL Server 2008 Management Studio?

Open SQL Server Management Studio > File > Open > File > Choose your . sql file (the one that contains your script) > Press Open > the file will be opened within SQL Server Management Studio, Now all what you need to do is to press Execute button.


2 Answers

It looks like there's something else called Afisho_rankimin in your DB so the function is not being created. Try calling your function something else. E.g.

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 

Note that you need to call this only once, not every time you call the function. After that try calling

SELECT dbo.Afisho_rankimin1(5) AS Rankimi  
like image 193
Yuriy Galanter Avatar answered Oct 08 '22 13:10

Yuriy Galanter


I have come to this question and the one below several times.

how to call scalar function in sql server 2008

Each time, I try entering the Function using the syntax shown here in SQL Server Management Studio, or SSMS, to see the results, and each time I get the errors.

For me, that is because my result set is in tabular data format. Therefore, to see the results in SSMS, I have to call it like this:

SELECT * FROM dbo.Afisho_rankimin_TABLE(5); 

I understand that the author's question involved a scalar function, so this answer is only to help others who come to StackOverflow often when they have a problem with a query (like me).

I hope this helps others.

like image 37
jp2code Avatar answered Oct 08 '22 12:10

jp2code