Sql server sp内包含值SQL server 2008的select语句
我有一个简单的问题,我相信解决方案就在我眼皮底下,但仍然无法解决 我有一个存储过程,希望用户输入2个输入:Sql server sp内包含值SQL server 2008的select语句,sql-server,variables,select,stored-procedures,Sql Server,Variables,Select,Stored Procedures,我有一个简单的问题,我相信解决方案就在我眼皮底下,但仍然无法解决 我有一个存储过程,希望用户输入2个输入: @userid int, @subtotal int 我的存储过程还需要表中的值,该值可以从以下查询中获得: SELECT discountid FROM historical WHERE userid = @userid 所以,我只需要将从这个查询中获得的值(一个int)保存到一个变量中,我将在整个存储过程中使用它,这样我就可以调用它并在以后使用它 问题是我不知道如何声明一个变量来保
@userid int,
@subtotal int
我的存储过程还需要表中的值,该值可以从以下查询中获得:
SELECT discountid FROM historical WHERE userid = @userid
所以,我只需要将从这个查询中获得的值(一个int)保存到一个变量中,我将在整个存储过程中使用它,这样我就可以调用它并在以后使用它
问题是我不知道如何声明一个变量来保存这个查询中的值,以便以后使用
我搜索并发现了如下内容:
@userid int,
@subtotal int,
@discountid int = (SELECT discountid from historical where userid = @userid)
而且
@userid int,
@subtotal int,
SELECT @discountid = discountid from historical
where userid = @userid;
……但它们似乎都不起作用。我目前正在使用SQLServer2008。希望有人能帮我一点忙,抱歉我的英语不是母语,提前谢谢 首先必须
声明该变量,然后将其赋值。还要确保查询只返回一行,否则一旦无法将N行分配给一个INT变量,就会出现错误。为了防止这种情况,我在select语句中添加了TOP1
CREATE PROCEDURE YOUR NAME
@userid int,
@subtotal int
AS
Declare @discountid int;
SELECT TOP 1 @discountid = discountid from historicalwhere userid = @userid;
.....
对我相信这就是我一直在寻找的。我在sp的第一部分声明了我的变量,这样用户就可以插入他自己的变量值,这是我不想要的。我必须在“AS”之后加入它,这是我的错误。让我再检查一下是否一切正常,过一会儿我再来。谢谢