连接 - 如何在存储过程中传递参数以执行连接查询

时间:2010-04-24 05:39:55

标签: sql stored-procedures join

我使用连接从两个表中获取通用名称的数据,如

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username 

但我需要只使用我在存储过程中作为参数传递的用户名来执行此查询。

如何在此连接中传递存储过程中的用户名。

alter procedure GetNameIDUserInformation
(
@user varchar(max)
)
as
begin

SELECT userValidity.UserName, userValidity.ValidFrom,userValidity.ValidUpTo,userValidity.TotalPoints, 
persons.SenderID
FROM userValidity
INNER JOIN persons
ON userValidity.Username=tbl_persons.Username 
end

在此SP中,我必须传递用户参数以获取用户记录的单行?

1 个答案:

答案 0 :(得分:1)

如果您只是在查询中添加WHERE userValidity.Username=user会怎样? :

alter procedure GetNameIDUserInformation ( @user varchar(max) ) as
begin
    SELECT userValidity.UserName,
    userValidity.ValidFrom,userValidity.ValidUpTo,
    userValidity.TotalPoints, persons.SenderID
    FROM userValidity
    INNER JOIN persons
    ON userValidity.Username=tbl_persons.Username end
    WHERE userValidity.Username=user

如果在user附近出现语法错误,请考虑使用其他名称,因为user是某些RDBMS中的保留关键字。