Como executar a função no servidor SQL 2008
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
os erros quando o executo são:
Msg 2714, Nível 16, Estado 3, Procedimento Afisho_rankimin, Linha 11
Já existe um objecto chamado "Afisho_rankimin" na base de dados.
e também se diz que:
não é possível encontrar a coluna "dbo", ou a função definida pelo utilizador, ou agregada " dbo.Afisho_rankimin", ou o nome é ambíguo
3 answers
Parece que há outra coisa chamada {[[2]} no seu DB, por isso a função não está a ser criada. Tenta chamar à tua função outra coisa. Por exemplo
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 que você precisa chamar isso apenas uma vez, não todas as vezes que você chama a função. Depois disso tenta ligar.
SELECT dbo.Afisho_rankimin1(5) AS Rankimi
Como chamar a função scalar no servidor sql 2008
De cada vez, eu tento introduzir a função usando a sintaxe mostrada aqui no SQL Server Management Studio, ou SSMS, para ver os resultados, e cada vez que eu recebo os erros.
Para mim, isso é porque o meu conjunto de resultados está no formato de dados tabulares. Portanto, para ver os resultados em SSMS, tenho que chamá-lo assim:
SELECT * FROM dbo.Afisho_rankimin_TABLE(5);
Eu entendo que o a pergunta do autor envolveu uma função escalar, então esta resposta é apenas para ajudar os outros que vêm para StackOverflow muitas vezes quando eles têm um problema com uma consulta (Como eu).
Espero que isto ajude os outros.Você pode ser Criar função antes disso, actualize a sua função novamente usando.
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