我试图编写一个给出游戏名称的SQL函数,它允许我搜索特定游戏的游戏表并返回有关该游戏的所有信息。
这是Games表的代码:
CREATE TABLE Games(
game_id INT IDENTITY PRIMARY KEY,
name VARCHAR(50),
release_date VARCHAR(50),
rating VARCHAR(5),
min_age INT,
development_team_email VARCHAR(50) FOREIGN KEY REFERENCES Development_Teams,
release_conference INT FOREIGN KEY REFERENCES Conferences
)
这是我在尝试编写函数时可以想到的:
create function SearchGames(@game_name varchar(50))
returns table
begin
declare @game
Select (*)
From Games
where Games.name = @game_name
return @game
end
我遇到了很多语法错误,而且我不知道自己做错了什么。任何帮助赞赏。
答案 0 :(得分:2)
使用inline table valued function
语法并添加架构:
create function dbo.SearchGames(@game_name varchar(50))
returns table
AS
RETURN (Select *
From Games
where Games.name = @game_name);
的 SqlFiddleDemo
强>
如果您使用存储过程,则需要使用:
CREATE TABLE ...;
INSERT INTO ... EXEC stored_procedure @args;
-- another operation on stored procedure resultset
使用内联表函数时,您只需:
SELECT * FROM dbo.SearchGames('aaa') GROUP BY ... HAVING ... ORDER BY;
答案 1 :(得分:0)
我建议不要使用function
,而应使用stored procedure
:
Create Proc spSearchGames (@game_name Varchar (50))
As Begin
Select *
From Games
Where name = @game_name
End
Go
执行它:
Exec spSearchGames 'YourGameName'