PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT AS BEGIN DECLARE @TempID INT SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID RETURN @TempID END这是个按ID查找数据的存储过程,按我想的应该返回 @TempID ,但是当我执行这个存储过程时,不返回数字结果啊!! 只有一句“命令已成功完成。”
PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT , @TempID int AS BEGIN SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID END go declare @TempID int exec [dbo].[YK_MarketClient_ExistsID] 1,@TempID output
PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT output --try AS BEGIN DECLARE @TempID INT SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID RETURN @TempID END
PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT, @TempID int output --try AS BEGIN DECLARE @TempID INT SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID RETURN @TempID END
ALTER PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT AS BEGIN DECLARE @TempID INT SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID RETURN @TempID END GO DECLARE @i INT EXEC @i=[dbo].[YK_MarketClient_ExistsID] 3 SELECT @i
3楼的应该可以,要把@tempid参数定在存储过程主体外部,并标明output
alter PROCEDURE [dbo].[YK_MarketClient_ExistsID] @ID INT, @TempID int output AS BEGIN SELECT @TempID = count(1) FROM dbo.t WHERE ID = @ID END declare @TempID int exec YK_MarketClient_ExistsID 1,@TempID output select @TempID /*
@ID INT ,
@TempID int
AS
BEGIN
SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
END
go
declare @TempID int
exec [dbo].[YK_MarketClient_ExistsID] 1,@TempID output
@ID INT output --try
AS
BEGIN
DECLARE @TempID INT
SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
RETURN @TempID
END
@ID INT,
@TempID int output --try
AS
BEGIN
DECLARE @TempID INT
SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
RETURN @TempID
END
@ID INT
AS
BEGIN
DECLARE @TempID INT
SELECT @TempID = count(1) FROM dbo.YK_MarketClient WHERE ID = @ID
RETURN @TempID
END
GO
DECLARE @i INT
EXEC @i=[dbo].[YK_MarketClient_ExistsID] 3
SELECT @i
PROCEDURE [dbo].[YK_MarketClient_ExistsID]
@ID INT,
@TempID int output
AS
BEGIN SELECT @TempID = count(1) FROM dbo.t WHERE ID = @ID END
declare @TempID int
exec YK_MarketClient_ExistsID 1,@TempID output
select @TempID
/*
-----------
1(所影响的行数为 1 行)
*/
只是执行的时候要给个变量来存储
比如5楼说的方法 要显示出来 就select
@value NVARCHAR(10)
AS
BEGIN
DECLARE @count NVARCHAR(10);
SELECT @count = @value;
RETURN @count;
END
GODECLARE @rc INT;-- 能转换为 int 皆可返回
EXEC @rc = usp_returnvalue '999';
SELECT @rc AS 'return value';-- 错误:转换失败
EXEC @rc = usp_returnvalue '99.9';
SELECT @rc AS 'return value';
GODROP PROC usp_returnvalue;
GO