簡體   English   中英

使用用戶定義的函數搜索表

[英]Searching a table using a user-defined function

我正在嘗試編寫一個給定游戲名稱的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

我收到許多語法錯誤,而且我不知道自己在做什么錯。 任何幫助表示贊賞。

使用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;

我不建議為此使用function ,而是建議使用stored procedure

Create Proc spSearchGames (@game_name Varchar (50))
As Begin
    Select  *
    From    Games
    Where   name = @game_name
End
Go

並執行它:

Exec spSearchGames 'YourGameName'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM