首先我是SQL新手,但我有一個很好的Java背景。我的問題是,我試圖讓這個程序返回一個varchar
,但它不讓我。使存儲過程返回一個VarChar
我試過使用RETURN
語句(我現在知道它只返回INTS)和SELECT
語句,但由於某些原因它繼續返回一個int。
這裏是我的代碼
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE get_TopGuildLeader
AS
--Variables
DECLARE @LeaderUID VARCHAR(20);
DECLARE @GuildID INT
DECLARE @MaxPoints INT
--Selecting Leader
SET @MaxPoints = (SELECT MAX(GuildPoint)
FROM PS_GameData.dbo._GuildRankPoint)
SET @GuildID = (SELECT GuildID
FROM PS_GameData.dbo._GuildRankPoint
WHERE GuildPoint = @MaxPoints);
SET @LeaderUID = (SELECT MasterName
FROM PS_GameData.dbo._GuildsBack
WHERE GuildID = @GuildID);
--Return Leader Name
SELECT @LeaderUID;
[存儲過程返回varchar]可能的重複(http://stackoverflow.com/questions/924455/stored-procedure-returns-varchar) –
這看起來像它可以簡化爲'SELECT MasterName FROM PS_GameData。 dbo._GuildsBack GB JOIN(SELECT TOP 1 GuildID,GuildPoint FROM PS_GameData.dbo._GuildRankPoint ORDER BY GuildPoint DESC)GP ON GP.GuildID = GB.GuildID'或類似的東西。 – ZLK
你**不能**在存儲過程中使用'RETURN'來返回'varchar' - 這是不可能的。所以你需要像你一樣使用'SELECT' - 所以這真的成爲你如何調用這個存儲過程的問題,以及你如何處理返回的結果集? –